检查字符串是否包含数字和字母(至少)

时间:2010-12-13 14:35:16

标签: regex

我想检查密码是否至少包含一个字母和一个数字。特殊字符被接受但不是必需的......

这将是一个简单的密码检查程序。

6 个答案:

答案 0 :(得分:29)

您可以使用超前断言来检查是否存在任何数字和任何字母:

^(?=.*[a-zA-Z])(?=.*[0-9])

答案 1 :(得分:6)

使用单个正则表达式会导致代码有些难以理解/不可靠。使用更简单的正则表达式(例如[0-9])检查数字的存在并将密码强度检查器的要求分解为多行if可能更有意义。此外,这使您可以更容易地了解验证失败的阶段,并可能向用户提出建议。

答案 2 :(得分:1)

([0-9].*[a-zA-Z])\|([a-zA-Z].*[0-9])

不确定管道是否需要在正则表达式环境中进行转义。

答案 3 :(得分:1)

检查包含至少一个字母,至少一个数字且没有空格的密码的简单解决方案:

\S*(\S*([a-zA-Z]\S*[0-9])|([0-9]\S*[a-zA-Z]))\S*

答案 4 :(得分:0)

/.*?(?:[a-z].*?[0-9]|[0-9].*?[a-z]).*?/

(只是一个可能的解决方案)

答案 5 :(得分:0)

这对我有用

/^(\d+[a-zA-Z]|[a-zA-Z]+\d)(\d|[a-zA-Z])*/mg