我正在尝试编写一个正则表达式来验证密码字符串中的以下条件
试过这个正则表达式
[a-zA-Z]+[0-9]+[a-zA-Z0-9]*|[0-9]+[a-zA-Z][a-zA-Z0-9]*
但它允许特殊字符。 任何帮助将不胜感激!
示例
答案 0 :(得分:3)
试试这个正则表达式:
(?=.*\d.*)(?=.*[a-zA-Z].*)[0-9A-Za-z]+
前两部分将承诺一个数字和一个a-z字符,第三部分允许您插入数字或a-z字符。
答案 1 :(得分:0)
你可以创建一个正则表达式,首先检查第一个字符,如果它是一个字母^[a-zA-Z]
,然后期望一个未知数量的字母字符[a-zA-Z0-9]*
。然后期望至少有一个数字[0-9]+
,并最终期望另一个未知数量的字母直到结束[a-zA-Z0-9]*$
。这看起来像:
^[a-zA-Z][a-zA-Z0-9]*[0-9]+[a-zA-Z0-9]*$
如果它以数字^[0-9]
开头,则生成等价物,然后期望未知数量的字母字符[a-zA-Z0-9]*
。然后期望至少有一个字母[a-zA-Z]+
,最后期待另一个未知数量的字母,直到结束[a-zA-Z0-9]*$
。这看起来像:
^[0-9][a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$
并在这两个正则表达式中进行OR:
^( [a-zA-Z][a-zA-Z0-9]*[0-9]+[a-zA-Z0-9]* | [0-9][a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*) $
答案 2 :(得分:-1)
您的模式应以^
(字符串的开头)开头,以$
结尾(字符串的结尾)。如果发现模式出现,我认为你的检查会成功。
所以它应该是
^([a-zA-Z]+[0-9]+[a-zA-Z0-9]*|[0-9]+[a-zA-Z][a-zA-Z0-9]*)$