Php 用于用户名和密码验证的正则表达式
我需要一个用于用户名和密码验证的正则表达式。对于用户名,我希望允许使用A-Z A-Z 0-9和以下特殊字符:Php 用于用户名和密码验证的正则表达式,php,regex,Php,Regex,我需要一个用于用户名和密码验证的正则表达式。对于用户名,我希望允许使用A-Z A-Z 0-9和以下特殊字符:@。我尝试使用它,以便: if(preg_match('/[A-Za-z0-9@:.]/', $username)) { $this->err = 'error'; } 但这不起作用。对于密码,我希望它们至少有一个大写字母、一个小写字母和一个数字。您需要修改您的模式,并使用lookahead来验证这些情况 if(preg_match('/^(?=.*[A-Z])
@。
我尝试使用它,以便:
if(preg_match('/[A-Za-z0-9@:.]/', $username)) {
$this->err = 'error';
}
但这不起作用。对于密码,我希望它们至少有一个大写字母、一个小写字母和一个数字。您需要修改您的模式,并使用lookahead来验证这些情况
if(preg_match('/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9@:.]+$/', $username)) { ... }
是一个零宽度断言,它不使用字符串上的任何字符
因此,它只匹配字符串中的一个位置。零宽度点是验证,以查看正则表达式是否可以从当前位置向前匹配,而不添加到整体匹配中。好的,但是您有用于密码验证的正则表达式吗?@johncode,情况并非如此,因为
存在于类中。Hm,但是为什么这不起作用呢?你需要锚定它并允许多个<代码>^[A-Za-z0-9@:.]+$如果!preg_match也是,因为这使它成为一个有效的通行证,对吗?谢谢你还有一个正则表达式用于密码验证吗?这是你的密码验证,用于密码我希望他们至少有一个大写字母、一个小写字母和一个数字。这就是为什么我们有这么多正则表达式问题的原因。