有两种办法:一是先将要处理的字符串分割成数组,再用filter滤去数组中的标点和空格(filter对于回调函数返回true的项会保留在数组中,返回false的会被滤出数组),最后再把数组转成字符串。下面是实现方法:
function palindrome(str) {
var arr = str.split("");
arr = arr.filter(function(val) {
return (val !== " " && val !== "," && val !== "." && val !== "?" && val !== ":" &&
val !== ";" && val !== "`" && val !== "'" && val !== "_" && val !== "/" && val !== "-" &&
val !== "\\" && val !== "" && val !== "\(" && val !== "\)");
});
console.log(arr.join(""));//arr变为"0000";
}
palindrome("0_0 (: /-\ :) 0-0");
还有一个是通过replace()用正则表达式选中字符串中的所有标点和空格,再将它们替换剔除掉。实现方法如下:
function palindrome(str) {
var arr = str.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?]/g,"");
console.log(arr);//"0000"
palindrome("0_0 (: /-\ :) 0-0");
}
这两种方法的不足就是不能囊括所有的标点符号,只能手动检验添加,才能实现期望效果。
欢迎分享本文,转载请保留出处:前端ABC » JS实现去除一个字符串中的所有标点和空格
前端ABC