鉴于: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\.*$]/,''))

答案 0 :(得分:2)
你的正则表达式只删除了第一个数字,因为它只匹配1个字符 - 数字,{
,4
,}
,空格,|
,{ {1}},.
或*
(由$
组成字符类),只有一次(没有全局修饰符)。
您可以使用
[...]
请参阅regex demo
基本上,删除构成字符类的/^\d{4}\s+|\s*\d\..*$/g
和[
,添加]
修饰符以执行多个替换,并添加g
(任何字符匹配模式)at结束。
<强>详情:
第一种选择:
- .*
- 字符串的开头
- ^
- 4位数
- \d{4}
- 1+空格
第二种选择:
- \s+
- 0+空格
- \s*
- 数字
- \d
- 点数
- \.
- 任何0 +字符到......
- .*
- 字符串的结尾
$