谁能帮我理解为什么以下返回 "$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/