替换非字母数字和多个空格

时间:2018-10-26 22:06:46

标签: javascript regex

我有此正则表达式删除所有非字母数字字符。

a = a.replace(/[^0-9a-z]+/gi,'');

添加到此行的所有帮助以单个空格替换所有多个空格。

谢谢。

1 个答案:

答案 0 :(得分:1)

要在单个正则表达式中实现此目的,您可以交替捕获组中的空格,然后替换为该组(如果使用其他替代,则为空字符串):

const replace = str => str.replace(/( )+|[^\da-z ]+/gi, '$1');
console.log(replace('foobar'));
console.log(replace('foo       bar'));
console.log(replace('foo###bar'));

还请注意,0-9可以替换为\d,这对于读取IMO来说要好一些。