1

当我注意到一些奇怪的事情时,我正在回答一个关于 regexes的问题。我在RegexPal中测试正则表达式,得到的结果与 Chrome 和 Firefox 告诉我的结果不同。

有问题的正则表达式是:/^\d*(\.\d{1,2}$)?/.

在 Firefox 和 Chrome 中:/^\d*(\.\d{1,2}$)?/.test('-1')返回true,但 RegexPal 说它不匹配。

http://regexpal.com/?flags=m®ex=%5E%5Cd%2A(%5C.%5Cd%7B1%2C2%7D%24)%3F&input=-1

我的猜测是它与正则表达式不匹配的事实有关,我的意思是空字符串。

正则表达式匹配字符串的开头,然后是 0 个数字,然后是组的 0,因此它会 "match" -1,因为它适合该模式,但 "match" 将是 "nothing" (空字符串)。

为什么 RegexPal 说它不匹配,但我的网络浏览器说它匹配?

4

1 回答 1

1

RegexPal 正在工作,但它并不明显。正则表达式匹配空字符串,因此 RegexPal 会为您突出显示。

好吧,由于空字符串是空的,所以你看不到它正在突出显示它。

于 2012-11-14T16:45:25.213 回答