I am trying to validate user input so it contains only letters, numbers,
underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However,
when I type in 'hello' in the field, it says that it doesn't match the
regexp, yet I'm sure that reg exp works for letters, numbers, and
underscores only. What am I doing wrong? Thanks for your help and time.
I am trying to validate user input so it contains only letters, numbers, underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However, when I type in 'hello' in the field, it says that it doesn't match the regexp, yet I'm sure that reg exp works for letters, numbers, and underscores only. What am I doing wrong? Thanks for your help and time.
Shouldn't your regexp accept lowercase as well? /[A-Za-z0-9_-]/?
Or you could simplify things a bit and use \w, which matches word characters, and \d, which matches digits?
I am trying to validate user input so it contains only letters, numbers,
underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However,
when I type in 'hello' in the field, it says that it doesn't match the
regexp, yet I'm sure that reg exp works for letters, numbers, and
underscores only. What am I doing wrong? Thanks for your help and time.
I am trying to validate user input so it contains only letters, numbers,
underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However,
when I type in 'hello' in the field, it says that it doesn't match the
regexp, yet I'm sure that reg exp works for letters, numbers, and
underscores only. What am I doing wrong? Thanks for your help and time.
--
Eric Hodel - drbrain@segment7.net - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant
I am trying to validate user input so it contains only letters, numbers,
underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However,
when I type in 'hello' in the field, it says that it doesn't match the
regexp, yet I'm sure that reg exp works for letters, numbers, and
underscores only. What am I doing wrong? Thanks for your help and time.
You are not accepting lowercase characters.
For convenience, try this:
/\w-/
The special token \w translates into "A-Za-z0-9_", IOW uppercase and
lowercase letters, numbers, and underscore, leaving only the dash to be
included explicitly.
There are many more letters than [A-Za-z]. You should either be explicit that you're testing only the ASCII subset, or be prepared to fail the first time someone includes the word 'café'. And are you OK with '—' as well as '-'? -Tim
···
On Sep 1, 2006, at 6:57 PM, Ben V. wrote:
I am trying to validate user input so it contains only letters, numbers,
underscores and dashes. I am using this regexp:/[A-Z0-9_-]/
I am trying to validate user input so it contains only letters, numbers,
underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However,
when I type in 'hello' in the field, it says that it doesn't match the
regexp, yet I'm sure that reg exp works for letters, numbers, and
underscores only. What am I doing wrong? Thanks for your help and time.
No one else seems to have mentioned that that regex will match all strings
/conatining/ a letter, digit hyphen or underscore:
I am trying to validate user input so it contains only letters, numbers, underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However, when I type in 'hello' in the field, it says that it doesn't match the regexp, yet I'm sure that reg exp works for letters, numbers, and underscores only. What am I doing wrong? Thanks for your help and time.
Shouldn't your regexp accept lowercase as well? /[A-Za-z0-9_-]/?
Or you could simplify things a bit and use \w, which matches word characters, and \d, which matches digits?
[\w\d_-]
--
Eric Hodel - drbrain@segment7.net - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant
Shouldn't your regexp accept lowercase as well? /[A-Za-z0-9_-]/?
Yep, that was the issue, as someone coming from a Coldfusion backround,
I'm not that familiar with RegExps, but that's good to know that you can
just use /w, and /d... Thanks for your help and time.
The special token \w translates into "A-Za-z0-9_", IOW uppercase and
lowercase letters, numbers, and underscore, leaving only the dash to be
included explicitly.
That definetly is much easier, like I said before, I am no expert at
RegEXP. I am trying to modify an image within a custom directory
created with the person's username, and because Rmagick doesn't seem to
want to work, I will have to run /usr/bin/convert, and I feel uneasy
putting user inputted text in a shell, but this regExp should do the job
of sanitizing it. Again, thank you very much for helping a
misunderstanding novice like me.
Good point, well actually this will go in a url, for example if I enter
mypage, I can access my member page at mydomain.com/mypage. Allowing
question marks would be confusing, because as you know, questionmarks
have special status in URLs for passing data.
I am trying to validate user input so it contains only letters, numbers,
underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However,
when I type in 'hello' in the field, it says that it doesn't match the
regexp, yet I'm sure that reg exp works for letters, numbers, and
underscores only. What am I doing wrong? Thanks for your help and time.
That regexp doesn't match lowercase characters.
input =~ /\A[\w-]+\Z/ is probably better.
\Z will allow a final newline character, though, so you'd probably
want to use \z.
I am trying to validate user input so it contains only letters, numbers,
underscores and dashes. I am using this regexp:/[A-Z0-9_-]/. However,
when I type in 'hello' in the field, it says that it doesn't match the
regexp, yet I'm sure that reg exp works for letters, numbers, and
underscores only. What am I doing wrong? Thanks for your help and time.
No one else seems to have mentioned that that regex will match all strings
/conatining/ a letter, digit hyphen or underscore:
Eric Hodel already suggested using \A and \Z, and I just suggested \A
and \z. The problem with ^ and $ is that they match the beginnings
and endings of lines, but not the whole string.
That actually only shows up as a "question mark" because either your browser or ruby-forum.com wasn't all that bright. It was actually an emdash. Anyway since this is for urls, you are ok as far as domain names go, because they only allow alphanumeric characters and hyphens. As far as stuff after the slash goes though, that could be open game, I'm not sure what the rules are.
···
On Sep 2, 2006, at 7:37 AM, Ben V. wrote:
And are you OK
with '�' as well as '-'? -Tim
Good point, well actually this will go in a url, for example if I enter
mypage, I can access my member page at mydomain.com/mypage. Allowing
question marks would be confusing, because as you know, questionmarks
have special status in URLs for passing data.