I need to validate a string from a user (a location for use with
geotagging) that is. I want to make sure that the user specify a city
and a country in my inp … So i wrote this =>
validates :usri_location,
:presence => true,
:format => {:with => /^[a-zA-Z]+{,\s}+[a-zA-Z]/i},
:on => :create
I want to make sure that the user writes city, country
city + ", " + country
but all i get is (invalid) some one with more experience with regex
wanting to help out or show me in a direction.
(spent the last hour trying code from
but i can’t get it to work …
/Niklas.
On 12 August 2011 14:08, Niklas N. [email protected] wrote:
city + ", " + country
but all i get is (invalid) some one with more experience with regex
wanting to help out or show me in a direction.
The way I tackle this sort of problem is to start with a simple regex
and slowly build it up. So you could start with just expecting alpha
characters and check that it accepts the city ok, then add the
expected comma, and so on.
Colin
On Aug 12, 2011, at 9:21 AM, Colin L. wrote:
On 12 August 2011 14:08, Niklas N. [email protected] wrote:
I need to validate a string from a user (a location for use with
geotagging) that is. I want to make sure that the user specify a city
and a country in my inp … So i wrote this =>
validates :usri_location,
:presence => true,
:format => {:with => /^[a-zA-Z]+{,\s}+[a-zA-Z]/i},
You have {} instead of () around the , and \s. Also, I don’t believe
the ‘,’ has to be escaped (it didn’t work with it escaped and it does if
i remove the escaping. With those 2 issues fixed it works for me on
rubular.
and slowly build it up. So you could start with just expecting alpha
Juan Alvarado
Try using http://rubular.com/. I use this a lot because it’s fast (most
of the time) and interactive.
**Leigh
Thanks - this is a bookmark from now on…
Juan Alvarado wrote in post #1016383:
On Aug 12, 2011, at 9:21 AM, Colin L. wrote:
On 12 August 2011 14:08, Niklas N. [email protected] wrote:
I need to validate a string from a user (a location for use with
geotagging) that is. I want to make sure that the user specify a city
and a country in my inp … So i wrote this =>
validates :usri_location,
:presence => true,
:format => {:with => /^[a-zA-Z]+{,\s}+[a-zA-Z]/i},
You have {} instead of () around the , and \s. Also, I don’t believe
the ‘,’ has to be escaped (it didn’t work with it escaped and it does if
i remove the escaping. With those 2 issues fixed it works for me on
rubular.
Also \s matches tabs and newlines, so your regex would match things
like:
xxxx, yyyy
and
xxxx,
yyy
so if you just want to match a space, then use a space in your regex:
/[a-zA-Z]+, [a-zA-z]+/
But then what if your user enters:
Los A., USA
or
San Jose, Costa Rica
Just be aware that with that regular expression you are not allowing
cities
which names contains white spaces. New York, USA is not going to match.
Also non standard ascii characters are not going to match (this could or
could not be a problem depending on the language and city names for the
countries you need to validate).
Apart of the regular expression, if you must be sure the input
correspond to
a “city, country” string you could also have cities and countries tables
and
check that the input is in your tables. Otherwise a string like “AAA,
AAA”
will match.