Le 3 avr. 2006 à 19:33, Dean Edwards a écrit :

Michel Fortin wrote:

Does that mean that a pattern attribute like "foo|bar" should translate to /^foo|bar$/ ? Wouldn't it make more sense it it was /^ (foo|bar)$/ with the parentesis?

You have a point. Would implied parentheses cause any side effects? None that I can think of...

Now that you mention it, it could. With a pattern like this:

    "(.).*\1"

which simply indicates that the first and the last characters must be the same, reference numbers won't refer to the right part. When the pattern get transformed to this:

    /^((.).*\1)$/

it makes `\1` a reference to the whole input text (the first parenthesis) rather than the first character (which has become the second parenthesis). This is not good.

So we will need to use a non-matching group `(?: ... )` instead:

    /^(?:(.).*\1)$/

Problem solved.


Michel Fortin
[EMAIL PROTECTED]
http://www.michelf.com/


Reply via email to