2011-10-24 96 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]已匹配的任何字符串提供附加匹配条件。

相关问题