我发现了很多php正则表达式和其他选项来确定字符串长度,如果它包含一个字母或一个数字,但是如何确定一个字符串是否有2数字在里面?PHP检查字符串有2个数字,8个字符和1个大写
我试图验证密码
必须只有8个字符
其中之一必须是大写字母
其中2个必须是数字
是否有单行正则表达式解决方案 这个?
我发现了很多php正则表达式和其他选项来确定字符串长度,如果它包含一个字母或一个数字,但是如何确定一个字符串是否有2数字在里面?PHP检查字符串有2个数字,8个字符和1个大写
我试图验证密码
必须只有8个字符
其中之一必须是大写字母
其中2个必须是数字
是否有单行正则表达式解决方案 这个?
if (preg_match(
'/^ # Start of string
(?=.*\p{Lu}) # at least one uppercase letter
(?=.*\d.*\d) # at least two digits
.{8} # exactly 8 characters
$ # End of string
/xu',
$subject)) {
# Successful match
(?=...)
是lookahead assertion。它检查某个正则表达式是否可以在当前位置进行匹配,但实际上并没有消耗字符串的任何部分,因此您可以将其中几个放在一行中。
为什么要将密码的长度限制为8个字符?希望你没有为银行工作...... – 2012-04-27 21:59:56
客户要求它 – 2012-04-27 22:08:17
只是你是我的英雄。真棒解决方案。 – 2012-04-27 22:08:35