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