具有至少1个字母和1个数字的正则表达式

时间:2009-06-12 08:38:36

标签: .net regex passwords

我认为这很简单,但我太笨了,不能写一个。有人能为我提供一个正则表达式,检查给定字符串至少1个字母和至少1个数字吗?

另外请解释一下。

5 个答案:

答案 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)

有人已经回答,但您可能会觉得这也很有用......

它是一个用.NET编写的可视化正则表达式构建器。它非常酷,你可以实时看到你会得到什么。请查看here

<强>:)

答案 4 :(得分:1)

我认为这不重要,但我是这样做的。

([A-Za-z])+([0-9])+|([0-9])+([A-Za-z])+