javascript - 为什么此正则表达式返回预期的较短版本?

标签 javascript regex regex-lookarounds

谁能帮我理解为什么以下返回 "$123,00" 而不是 "$123,000"

var string = "$123,000 word word";
string.match(/^\$[\d|,]+(?!\s)/g)

// "$123,00" not "$123,000"

希望得到帮助,让它返回“123,000 美元”

最佳答案

因为你的前瞻性。当它前进到最后一个 0 时,先行匹配并且正则表达式失败。所以它必须回溯到第二个 0。看起来你可能想要:

"$123,000 word word".match(/^\$[\d,]+\b/)[0]
#=> "$123,000"

关于javascript - 为什么此正则表达式返回预期的较短版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34168980/

相关文章:

javascript - 匹配字符串,除非它在方括号内

javascript - 是否有等效的 elem.innerHTML 获取标记正文中的代码?

java - 在现有字段前加上 m

javascript - 正则表达式,用于匹配包含一个单词但不包含另一个单词的URL

Java 在第三个逗号上分割字符串

java - 在具有未知标记名的 html 标记之间提取?

java - 正则表达式忽略 html 标签,但从具有不同结束 anchor 的单词边界开始

javascript - angular ui.router 两个状态之间的倾斜过渡

javascript - 连接到 MongoDB 数据库

javascript - 具有扩展组件的动态滚动区域