我该如何简化以下内容?

时间:2015-02-20 18:54:13

标签: javascript regex

var r1a =  word
    .split(/[^a-z0-9\s.\|]/gi)
    .join("")
    .split(/([~@#$%^&*()_+=`{}\[\]\\:;<>\/ ])+/g)
    .join("");

我相信我正在使用两次加入功能,这是不必要的

如果只进行一次加入,我怎么能做同样的事情呢?

2 个答案:

答案 0 :(得分:2)

str.split(regex).join("")可以简化为str.replace(regex, "")

答案 1 :(得分:1)

除了ipsec所说的,你应该能够组合正则表达式并进行一次.replace()调用:

var word = "HESDF@#^#WEHWERJUWWHWSD654684s6dSDfW#T#SDFZ$W&&)@*#$";
var r1a =  word
    .split(/[^a-z0-9\s.\|]/gi)
    .join("")
    .split(/([~@#$%^&*()_+=`{}\[\]\\:;<>\/ ])+/g)
    .join("");

var blah = word.replace(/[^a-z0-9\s.\|]|([~@#$%^&*()_+=`{}\[\]\\:;<>\/ ])+/gi,'');

console.log(r1a === blah);

jsFiddle