1

何か奇妙なことに気づいたとき、私は正規表現についての質問に答えていました。私は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と一致するため、-1その型に適合するため「一致」しますが、「一致」は「なし」(空の文字列)になります。

RegexPalが一致しないと言うのに、私のWebブラウザーは一致すると言うのはなぜですか?

4

1 に答える 1

1

RegexPalは機能していますが、それは明らかではありません。正規表現は空の文字列と一致するため、RegexPalはそれを強調表示します。

空の文字列は空なので、強調表示されていることはわかりません。

于 2012-11-14T16:45:25.213 に答える