這裡的格式以8個以上的密碼,其中需要英文字母大小寫與數字,如果這三個缺少一個則會顯示格式錯誤。另外補充在preg_match('/(?=.[a-z])(?=.[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8}/', $password),如果加上句首句尾的話會限制為8個密碼,如果8個以上或以下會出現格式錯誤。(歡迎補充)
(?=.*[a-z]):包含小寫英文字母(a-z)
(?=.*[A-Z]):包含大寫英文字母(A-Z)
(?=.*[0-9]):包含小寫英文字母(0-9)
[a-zA-Z0-9]:大小寫與數字各一個
{8,}符合前項格式的文字8個以上
.*:任意文字重複0次以上
input.php
<form action="output.php" method="get">
<p>(需為8個字以上,並包含小寫字母、大寫字母、數字至少各1)</p>
<input type="password" name="password">
<input type="submit" value="檢查">
</form>
output.php
<?php
$password = $_GET['password'];
if(preg_match('/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8}/', $password)){
echo '密碼『',$password,'』正確。';
} else{
echo '密碼『',$password,'』不正確。';
}
?>