2014-05-01 35 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