views:

326

answers:

2

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..

+3  A: 

I think this should do the trick:

preg_match('/^[a-zA-Z0-9]{4,30}$/',$psword);

gimly
+3  A: 

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.

RageZ
If you do set how large a password can be, I'd suggest more than 30 characters. Some people have long passwords, and good for them. Its more secure.
Chacha102
Given, that this is 30 characters: `thisais30characterspasswordyay`. I know one of my passwords is longer than that.
Chacha102
@Charchar102, You're right, but this is for a simple game so I'll just maybe keep it to 40.
oni-kun
"On the same fashion if you want only to set the minimum of patern {n} would do it." That should be {n,} if minimum only.
antennen