Jump to content

Archived

This topic is now archived and is closed to further replies.

wasimkham

Regular Expression Help!

Recommended Posts

[b]$pass_reg = ereg("^[0-9a-zA-Z]{5,12}",'1124adadsadasdasdsad',$match);
print_r($match);

if ($pass_reg) {
echo "<p>Password is <b>correct</b><p>";
} else {
echo "<p>Password is <b>incorrect</b><p>";
}[/b]

Hi, im using this regular expression "^[0-9a-zA-Z]{5,12}" as password validation, but even if the string passed through ereg() is more than 12 characters, the ereg() function still returns True, and $match returns the first 12 characters of the string. This is the output of the script:

Array ( [0] => 1124adadsada )

Password is [b]correct[/b]

Can i configure it so that i can make it return False if the string passed is 12 characters or less?

Thanks

Share this post


Link to post
Share on other sites
I dont know much about regex, but you can just do this:

[code]$pass="1124adadsadasdasdsad";
$pass_reg = ereg("^[0-9a-zA-Z]",$pass,$match);

if ($pass_reg && strlen($pass)<=12) {
echo "<p>Password is <b>correct</b><p>";
} else {
echo "<p>Password is <b>incorrect</b><p>";
}[/code]

Btw, look at this (quoted from php.net, the ereg function):
"Note: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg(). "

Orio.

Share this post


Link to post
Share on other sites
well im gonna try perl regular expressions, i've just started learning them. but the thing wrong with your method is that ereg() function doesnt return a string, it returns a Boolean. thanks for you help, be back later if any problems

Share this post


Link to post
Share on other sites
I know it retuns a boolean... The piece of code I wrote does check if its alpha numeric and if its length is smaller than 12 (Forgot to add the: " && strlen($pass)>=5" to the if).

Orio.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.