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");
}

这两种方法的不足就是不能囊括所有的标点符号,只能手动检验添加,才能实现期望效果。

猜你喜欢

转载自blog.csdn.net/zamamiro/article/details/62892132
今日推荐