[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