当我注意到一些奇怪的事情时,我正在回答一个关于 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 说它不匹配,但我的网络浏览器说它匹配?