JS实现去除一个字符串中的所有标点和空格

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

赞 (1)
分享到:更多 ()

发表评论 0