如何制作强制执行的正则表达式:
- 字母和数字(每个至少 1 个)
- 最小和最大长度(10 到 50)
- 只能是字母或数字
当使用 php preg_match 时?
这是我得到的:
^[A-Za-z0-9]{10,50}$
除了强制执行字母和数字之外,它似乎可以做所有事情。
最佳答案
做:
^(?=.*(?:[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}$
关于php - php 中的正则表达式-长度有限的字母和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40099274/