我對PHP完全陌生。我需要幫助編寫一個驗證密碼的正則表達式。密碼長度必須至少爲8個字符,以字母開頭,以數字結尾,且不區分大小寫。第一個和最後一個之間的字符可以是數字,下劃線或符號。PHP正則表達式驗證密碼
任何幫助將不勝感激。
我對PHP完全陌生。我需要幫助編寫一個驗證密碼的正則表達式。密碼長度必須至少爲8個字符,以字母開頭,以數字結尾,且不區分大小寫。第一個和最後一個之間的字符可以是數字,下劃線或符號。PHP正則表達式驗證密碼
任何幫助將不勝感激。
查看manual中的preg_match()
PHP函數。
快速示例:
<?php
// Check if the string is at least 8 chars long
if (strlen($password) < 8)
{
// Password is too short
}
// Make the password "case insensitive"
$password = strtolower($password);
// Create the validation regex
$regex = '/^[a-z][\[email protected]#$%]+\d$/i';
// Validate the password
if (preg_match($regex, $password))
{
// Password is valid
}
else
{
// ... not valid
}
Regex Explanation:
^ => begin of string
[a-z] => first character must be a letter
[\[email protected]#$%]+ => chars in between can be digit, underscore, or symbol
\d => must end with a digit
$ => end of string
/i => case insesitive
請不要做strtolower()位 - 它會讓你的密碼更不安全。 – Spudley
@Spudley真的,只是包括它,因爲user2573918問它。但這確實是一個安全問題。 –
/^[A-Za-z][0-9[:punct:]]{6,}[0-9]$/
應該工作
此說:
看一看[此](http://stackoverflow.com/q/11873990/2493918)問題。 –
哪些符號可以用於中間字符? – Legion
你爲什麼強迫一封信作爲第一個字符?並限制我可以使用字母,數字,下劃線和符號的字符集?我不能使用UTF-8字符嗎? –