在所有现代浏览器中,javascript正则表达式中的花括号处理是否相同?

Cal*_*ius 11 javascript regex

JavaScript正则表达式中的大括号用于表示量词.所以写作

a{2,4}
Run Code Online (Sandbox Code Playgroud)

将匹配aa,aaa和aaaa.但是如果你错误地输入这个量词,就像这样:

x{1,x}
Run Code Online (Sandbox Code Playgroud)

它将匹配文字文本"x {1,x}",至少在Firefox中.

这种行为在现代浏览器中是否常见?

ECMA标准禁止这种行为,并要求撤销支架.

(背景:我必须在工作中为javascript正则表达式编写一个解析器.)

ste*_*ema 5

我不知道JavaScript和浏览器,但这是我期望的行为,我在过去的正则表达式中看到过.

所以我测试了不同的正则表达式引擎的行为:

  • C#:表现得这样

  • Perl:表现得这样

  • Python:表现得这样

  • PHP:表现得这样

  • Java:抛出异常