有两种办法:一是先将要处理的字符串分割成数组,再用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实现去除一个字符串中的所有标点和空格