[whatwg] Web Forms: pattern attribute
Dean Edwards
dean at edwards.name
Sat Apr 22 11:51:49 PDT 2006
Michel Fortin wrote:
> 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.
>
Very neat. However, I think it would be best if the UA did this little
trick itself. :-)
-dean
More information about the whatwg
mailing list