标签: php regex preg-match
如何制作强制执行的正则表达式:
使用php preg_match?
这是我得到的:
^[A-Za-z0-9]{10,50}$
除了强制执行字母和数字之外,它似乎做了所有事情。
答案 0 :(得分:5)
执行:
^(?=.*(?:[A-Za-z].*\d|\d.*[A-Za-z]))[A-Za-z0-9]{10,50}$
(?=.*(?:[A-Za-z].*\d|\d.*[A-Za-z]))是零宽度正向前瞻,这可确保至少有一个字母和一个数字
(?=.*(?:[A-Za-z].*\d|\d.*[A-Za-z]))
[A-Za-z0-9]{10,50}确保匹配仅包含字母和数字
[A-Za-z0-9]{10,50}
Demo
甚至更干净,使用两个前瞻而不是OR-ing(感谢chris85):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9]{10,50}$