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

时间:2011-12-20 11:27:25

标签: javascript regex

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

a{2,4}

将匹配aa,aaa和aaaa。但如果你错误地输入这个量词:

x{1,x}

它将匹配文字文本“x {1,x}”,至少在Firefox中。

现代浏览器常见这种行为吗?

ECMA标准禁止此行为,并要求撤消括号。

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

1 个答案:

答案 0 :(得分:5)

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

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

  • C#:行为方式

  • Perl :表现得这样

  • Python :行为方式

  • PHP :行为方式

  • Java :抛出异常