2011-10-24 95 views
0
preg_match("/^([0-9a-zA-Z])+$/", $newvalue) 

我對的preg_match上面的代碼,以檢查是否用戶輸入具有至少一個下殼體,一個上殼體和一個數字值..的PHP的preg_match字母數字,與至少一個大寫字符

但這似乎並不奏效,因爲如果它們是數字或小寫或大寫字母,它會接受值。並不確定每一個都存在

什麼需要解決?

回答

3

嘗試this.It檢查包含至少一個數字,一個小寫字符串和一個上殼體串

preg_match("(^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$)",$newvalue) 

實施例所述的$ NEWVALUE所有標準:

<?php 
if(preg_match("(^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$)","RoHan123aA")) 
{ 
    echo ":) success"; 
} 
else 
{ 
    echo ":("; 
} 

?> 

參見this.It作品。

+0

以'Aa0'爲例。你是正則表達式不會匹配它。 – vartec

0

您只定義了一個應用於整個字符串的字符類。它不檢查每個單獨的範圍是否存在一次。通常,在您的PHP代碼中使用三個比較/ preg_match-calls來完成此操作。

但在這種情況下,它也簡單一些assertions做:

preg_match("/^(?=.*[A-Z])(?=.*\d)([0-9a-zA-Z]+)$/", $newvalue) 

您可以添加你想要的。它們同時應用,併爲組[0-9a-zA-Z]已匹配的任何字符串提供附加匹配條件。

相關問題