Welcome to WebmasterWorld Guest from 54.196.244.186

Forum Moderators: coopster & jatar k

Message Too Old, No Replies

simple pregmatch

     
1:27 pm on Apr 11, 2010 (gmt 0)

Junior Member

5+ Year Member

joined:May 16, 2009
posts: 86
votes: 0


This is stupid I know, but I can't find a way to do it, I know the expressions but I don't know where and how to set them..

I have

if (!preg_match ("/([a-z0-9._]+)+$/", trim($_POST["username"]))){

dosomething

}

I need to verify that "username" has only upper/lowercase chars with "." and "_" allowed. but I want also to NOT allow whitespaces in the username

I tried the followings with no success

/([a-z0-9._^\s]+)+$/
/([a-z0-9._\S]+)+$/
/([a-z0-9._^ ]+)+$/

Thank you
2:01 pm on Apr 11, 2010 (gmt 0)

Senior Member

WebmasterWorld Senior Member 5+ Year Member

joined:Dec 13, 2009
posts:943
votes: 0


preg_match('/^[a-z0-9_\.]+$/i', $someVariable)

Not stupid at all by the way, I used to have terrible trouble with regular expressions
3:52 pm on Apr 11, 2010 (gmt 0)

Preferred Member

5+ Year Member

joined:Aug 18, 2008
posts:408
votes: 0


Even simpler, \w matches all alpha-numeric characters (case-insensitive) and the underscore (equivalent of [a-zA-Z0-9_]):
preg_match("/^[\w\.]+$/", $someVariable)

So, actually if you want to check the variable does not contain anything other than those allowed characters, you could do:
if (!preg_match("/[^\w\.]/", $someVariable)) {
//do something, $someVariable only contains the allowed characters

Remember that the '^' character when used un-escaped inside of character class brackets excludes the given characters and checks for anything other than those characters given, so the latter check checks for anything other than \w or \.
2:12 pm on Apr 27, 2010 (gmt 0)

Junior Member

5+ Year Member

joined:May 16, 2009
posts:86
votes: 0


thank you!