Thursday, May 10, 2012

Is handling of curly braces in javascript regex is the same across all modern browsers?


Curly braces in JavaScript regex is used to denote quantifiers. So writing




a{2,4}



will match aa, aaa and aaaa. But if you mistype this quantifier like this:




x{1,x}



It will match the literal text "x{1,x}", at least in Firefox.



Is this behavior common to modern browsers?



The ECMA standard prohibits this behavior and requires the escaping of the braces.



(Background: I have to write a parser for javascript regexes at work.)


Source: Tips4all

1 comment:

  1. I don't know for JavaScript and browsers, but this is the behaviour I would have expected and that I have seen in the past in regular expressions.

    So I tested different regex engines on their behaviour:


    C#: behaves this way
    Perl: behaves this way
    Python: behaves this way
    PHP: behaves this way
    Java: throws an Exception

    ReplyDelete