我认为这很简单,但我太笨了,不能写一个。有人能为我提供一个正则表达式,检查给定字符串至少1个字母和至少1个数字吗?
另外请解释一下。
答案 0 :(得分:6)
对于像多个订单这样非常复杂的东西,RE不是那么好,但是这个简单的东西应该可以表示:
[A-Za-z].*[0-9]|[0-9].*[A-Za-z]
答案 1 :(得分:2)
最佳方法是使用2个正则表达式/[a-z]/i
和/\d/
单独检查。
否则,假设您要强制执行密码的安全规则,请将其拆分(例如,在PHP中使用str_split
)并计算每种字符类型的出现次数,这将为您提供密码估计力量,让你适应你的规则。
如果密码更改,性能不是问题,你不要在20K stings上执行...
答案 2 :(得分:1)
使用两个检查显然会更容易,一个用于字符串,一个用于数字。
以下内容可能会起作用,看起来好像你有一个数字和一个字母,那么你必须按照定义在字母旁边有一个数字(反之亦然):
([A-Za-z][0-9]|[0-9][A-Za-z])
更新:删除了虚假的'|'。注意,上面假设没有其他字符有效,我想这可能是不可接受的。如果允许使用标点符号,请参阅其他答案以获得更好的解决方案。
答案 3 :(得分:1)
答案 4 :(得分:1)
我认为这不重要,但我是这样做的。
([A-Za-z])+([0-9])+|([0-9])+([A-Za-z])+