Ruby on Rails Monday, December 27, 2010



On Mon, Dec 27, 2010 at 10:52 AM, Colin Law <clanlaw@googlemail.com> wrote:
On 27 December 2010 16:42, David Kahn <dk@structuralartistry.com> wrote:
> (Ruby 1.9.2) I have a simple validation regex which I need to pass the
> following values: "Billy-Bob" and "O'Kelley" (as test cases). Originally I
> was not allowing apostrophe but it became apparent I had to allow it.
>
> The initial regex was:
>
> /^[a-zA-Z -]*$/
>
> Now, when I added the apostrophe like this:
>
> /^[a-zA-Z' -']*$/
>
> Then for some reason "Billy-Bob" was not getting matched:
>
>> "Billy-Bob" =~ /^[a-zA-Z -']*$/
>> nil
>> "O'Kelley" =~ /^[a-zA-Z' -']*$/
>> 0
>
> But when I moved the apostrophe further in, then things work as desired an
> expected:
>
>> "Billy-Bob" =~ /^[a-zA-Z' -]*$/
>> 0
>> "O'Kelley" =~ /^[a-zA-Z' -]*$/
>> 0
>
> Why is this?

It is the minus that is a special char (as in a-z) if you escape the
minus it is ok.

Yes I see you are right ---the weird part is that the minus is getting passed not as a special character in the first examples ( "Billy-Bob" =~ /^[a-zA-Z' -]*$/ returns 0!) .... anyhow, I will remember than and start escaping it.
 
ruby-1.9.2-p0 > "Billy-Bob" =~ /^[a-zA-Z \-']*$/
 => 0
ruby-1.9.2-p0 > "O'Kelley" =~ /^[a-zA-Z \-']*$/
=> 0

Colin
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To unsubscribe from this group, send email to
> rubyonrails-talk+unsubscribe@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment