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
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.
ReplyDeleteSo 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