使用正则表达式从字符串中删除不需要的字符组

时间:2017-03-25 20:52:11

标签: javascript regex

鉴于:1999 some text here 1.3i [more]
需要:some text here

以下正则表达式 - replace(/[\d{4} |\d\.*$]/,'') - 失败,它只删除了第一个数字。知道为什么以及如何解决它?



var s = "1999 some text here 1.3i [more]"
console.log(s.replace(/[\d{4} |\d\.*$]/,''))




1 个答案:

答案 0 :(得分:2)

你的正则表达式只删除了第一个数字,因为它只匹配1个字符 - 数字,{4},空格,|,{ {1}},.*(由$组成字符类),只有一次(没有全局修饰符)。

您可以使用

[...]

请参阅regex demo

基本上,删除构成字符类的/^\d{4}\s+|\s*\d\..*$/g [,添加]修饰符以执行多个替换,并添加g(任何字符匹配模式)at结束。

<强>详情:

第一种选择:
  - .* - 字符串的开头
  - ^ - 4位数   - \d{4} - 1+空格

第二种选择:
  - \s+ - 0+空格
  - \s* - 数字
  - \d - 点数   - \. - 任何0 +字符到......   - .* - 字符串的结尾

$