2014-05-01 18 views
0

我想创建一个简单的正则表达式检查器的用户名,密码和电子邮件验证。PHP:简单的正则表达式的用户名,密码和电子邮件

的要求如下:

用户名:

- Only letters and numbers (a-z, A-z, 0-9). 
- No spaces, linebreaks, tabs or special characters. 
- At least 5 characters in length. 
- No more than 20 characters in length. 

密码:

- At least 8 digits in length. 
- no more than 40 characters in length. 
- Must contain at least 1 special character or number. 

电子邮件:

- Must follow the format "[email protected]". 

这是我到目前为止有:

用户名 - 工作。

$username = $enteredUsername; 
if(preg_match('/^[a-zA-Z0-9]{5,30}+$/', $username) == false) { 

echo "the username is invalid"; 

} 

密码:还没有成型:

$password = $enteredPassword; 
if(preg_match('/^[a-zA-Z0-9]+[\w0-9]{8,}+$/', $password) == false) { 

echo "the password is invalid"; 

} 

电子邮件 - 工作。

$email = $enetered email. 
if (filter_var($email, FILTER_VALIDATE_EMAIL) == false) { 

    echo "the email is invalid"; 
} 

电子邮件和用户名的作品,但我似乎无法找出密码的正确的正则表达式。

+0

为什么你想为你的密码正则表达式,如果你想防止SQL-注射 – kpp

+0

我所有的SQL查询得到的自动准备在数据库连接设置只需使用准备好的语句。这是关于确保用户提供强密码,而不是sql注入。 – user3143218

+0

只需要一个最小长度,让其余部分由用户决定。 – Gumbo

回答

1

对于密码的正则表达式,请尝试:

^(?=.*[^a-zA-Z]).{8,40}$ 

这将使用positive lookahead排除字母字符,以确保特殊字符或包含数字。

+0

谢谢!那工作:) – user3143218