好的,所以我正在開發一個登錄系統,並且我正在努力防止用戶輸入我不想要的,我的驗證的一部分是確定用戶名只是字母數字,以及密碼,並對電子郵件進行單獨驗證。所以我發現了幾個在php.net上使用的例子,因爲在php中所有的東西,這些preg匹配的東西對我來說是毫無意義的。Preg_Match假結果
我遇到的問題是誤報。前兩個返回false爲true,並且電子郵件驗證按預期工作,但對於我的生活,我不知道爲什麼。我可以簡單地刪除!在前面強迫我的表達意圖的答案,但我實際上想知道爲什麼兩個語句構造幾乎完全相同的返回不同的布爾值。
<?php
$user = "testing2";
$pass = "testing1";
$email = "[email protected]";
if (!preg_match('/[^A-Za-z0-9]+/', $user)) {
echo "Username must only contain English letters and numbers<br />";
}
if (!preg_match('/[^A-Za-z0-9]+/', $pass)) {
echo "passw must only contain English letters and numbers<br />";
}
if (!preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i', $email)) {
echo "Please use a valid email";
}
?>
*「passw只能包含英文字母和數字」* - 爲什麼? – Ryan
因爲我希望在使用精確過濾之前讓代碼正常工作。 – Pyro4816
這裏有一個函數密碼檢查:'if(strlen($ pass)<8){echo「passw太短,至少使用8個字符;越多越好。 }' –