如何使正则表达式强制:
- 字母和数字(每种至少1个)
- 最小和最大长度(10到50)
- 只有字母或数字
当使用PHP preg_match?
这是我得到的:
^[A-Za-z0-9]{10,50}$
它似乎做了所有的事情,除了强制字母和数字。
Do:
^(?=.*(?:[A-Za-z].*'d|'d.*[A-Za-z]))[A-Za-z0-9]{10,50}$
(?=.*(?:[A-Za-z].*'d|'d.*[A-Za-z]))
为零宽度正向前看,这确保至少有一个字母和一个数字存在[A-Za-z0-9]{10,50}
确保匹配只包含字母和数字
或者更简洁,使用两个前视而不是Or -ing(感谢chris85):
^(?=.*[A-Za-z])(?=.*'d)[A-Za-z0-9]{10,50}$