密码正则表达式

时间:2013-02-13 17:40:28

标签: regex passwords

我需要使用以下标准生成密码正则表达式:

有效密码必须至少包含8个字符。它必须至少有一个大写字母,一个小写字母和一个非字母字符。

到目前为止,我创建了这种模式:

((?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,50})

但它仍然采用没有非字母字符的String。我怎样才能做到这一点?感谢

1 个答案:

答案 0 :(得分:4)

你可以试试这个

                                           |->match 8 or more chars
                                         -----
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[^a-zA-Z]).{8,}$
 ------------ ---------- ---------------
      |           |              |->matches further only if there is atleast 1 non alphabetic char
      |           |->matches further only if there is atleast 1 a-z
      |->matches further only if there is atleast 1 A-Z