W3C home > Mailing lists > Public > whatwg@whatwg.org > April 2006

[whatwg] Web Forms: pattern attribute

From: Michel Fortin <michel.fortin@michelf.com>
Date: Tue, 4 Apr 2006 13:06:31 -0400
Message-ID: <3A9D4FC4-ADF6-4365-9D03-14E63066002B@michelf.com>
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
michel.fortin at michelf.com
http://www.michelf.com/
Received on Tuesday, 4 April 2006 10:06:31 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:58:46 UTC