2012-11-14 88 views
1

我回答了一個question about regexes,當時我注意到一些奇怪的東西。我正在測試RegexPal中的正則表達式,並且我得到了Chrome和Firefox告訴我的不同結果。RegexPal與瀏覽器不同

有問題的正則表達式是:/^\d*(\.\d{1,2}$)?/

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

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

我的猜測是,它有事情做的事實,正則表達式什麼都沒有,我的意思是空字符串相匹配。

正則表達式匹配字符串的開頭,然後是0數字,然後是0的組,因此它會匹配-1,因爲它適合模具,但「匹配」將是「沒有」(空字符串)。

RegexPal爲什麼說它不匹配,但我的網頁瀏覽器說它呢?

+0

該正則表達式應該與字面上的任何內容相匹配(您正在使'\ d'爲可選,並且整個組也是可選的)。它看起來像RegexPal中的一個bug。 – NullUserException

+0

等一下。我只是想到了一些事情。正則表達式「高亮」匹配。所以,它試圖突出匹配。這是一個空字符串,所以你看不到它。我知道X_X –

+0

出於好奇,有沒有像假小馬發電機或什麼的?還是你自己畫了那個化身? – NullUserException

回答

1

RegexPal正在工作,但它並不明顯。正則表達式匹配空字符串,所以正則表達式會爲您加亮。

那麼,由於空的字符串是空的,你看不到它突出顯示它。