【问题标题】:replace non-alphamumeric and multiple spaces替换非字母数字和多个空格
【发布时间】:2019-03-31 16:38:07
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • a.replace(/[^0-9a-z]+/gi,'').replace(/\s{2,}/g, ' ')
  • 是多个空格还是两个空格?
  • {2,} 表示2个或更多
  • 非常感谢。解决了

标签: javascript regex


【解决方案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。

【讨论】:

  • 你能解释一下吗,请问替换multipla空格的代码在哪里,请
  • ( )+ 重复空格(一个或多个)并捕获组中的单个空格。 ( ){2,} 也可以
猜你喜欢
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
  • 2012-09-04
  • 1970-01-01
  • 2018-05-06
  • 2010-12-20
  • 1970-01-01
相关资源
最近更新 更多