之前的问题解释了一些类似的问题,但我无法为我的问题实施解决方案。
我尝试为以下内容创建模式: 1.大字 2.小角色 3.数量 4. SpecialChar
所有这些条件必须包含我的字符串。 我可以通过以下方式检查条件1,2,3。
[0-9A-Za-z]
我可以通过以下方式检查条件号4(特殊字符)
[[:punct:]]
但我无法将这些组合用于工作:
$p = "aAbB4#"; //correct string
if(!preg_match('/([0-9A-Za-z]{4,50}|[[:punct:]])/',$p)){
$p = "Not all credentinals are correct";
}
我怎么能这样做?
答案 0 :(得分:1)
为此使用正向前瞻匹配,即将每个字符放入(?=)
组:
if (!preg_match('/^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[[:punct:]]).{4,50}$/', $p)) {
...
}