我有此正则表达式删除所有非字母数字字符。
a = a.replace(/[^0-9a-z]+/gi,'');
添加到此行的所有帮助以单个空格替换所有多个空格。
谢谢。
答案 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来说要好一些。