必须至少包含2个字母

mow*_*gli 1 php regex

如何检查字符串是否包含任何位置/顺序中的至少2个字母?不区分大小写

这当然只适用于一个或多个字母

if (!preg_match('/[a-z]+/i', $pass)) {

}
Run Code Online (Sandbox Code Playgroud)

然后我尝试了类似的东西

if (!preg_match('/[a-z]{2,}/i', $pass)) {

}
Run Code Online (Sandbox Code Playgroud)

但这不起作用

谢谢

编辑:通过"任何位置/顺序"我的意思是12345ab/a12345b/12a345b6

eli*_*ide 5

你只需要这个正则表达式:

[a-z][^a-z]*[a-z]
Run Code Online (Sandbox Code Playgroud)

演示

所以,你的PHP变成了:

if(!preg_match("/[a-z][^a-z]*[a-z]/i", $pass)) {

}
Run Code Online (Sandbox Code Playgroud)

Codeman的解决方案(([^a-z]*[a-z]){2,})工作,但效率较低,因为当你只想知道在任何地方是否有两个字母时,它需要解析整个字符串$pass.