问题
I'm creating a registration system that needs to check the name/pass etc. with REGEX (and prefer to), what I've got so far is:
//Check so numbers aren't first, such as 00foobar
preg_match('/^(?!\d)[a-z0-9]+$/iD',$usrname);
//Just simple check
preg_match('/^[a-zA-Z0-9]+$/',$psword);
But I have to do stupid things in IF statements like:
if strlen($psword) > 30 || if (strlen($psword) < 4) ....
How would I impliment the length checking in my two original regular expression statements? This would make me so happy..
回答1:
same but using the \w and \d for word and digits, but you might want also to include basic symbols like %!?/ ... etc...
preg_match('/^[\w\d]{4,30}$/',$psword);
the {n,v}
would validate for minimum n and maximum v elements before.
like A{2,3}
would validate for AA
and AAA
. you can take a look there for more references
On the same fashion if you want only to set the minimum of patern {n,}
would do it. For example:
preg_match('/^[\w\d]{4,}$/',$psword);
回答2:
I think this should do the trick:
preg_match('/^[a-zA-Z0-9]{4,30}$/',$psword);
来源:https://stackoverflow.com/questions/2215578/php-simple-regular-expressions-to-match-length