如何使用正则表达式检查密码包含字母和数字

时间:2014-04-09 19:00:28

标签: java regex

我尝试使用以下表达式来检查密码是否是数字和字母的组合,尽管字母和数字的顺序

password.matches("[a-zA-z]{1,}[0-9]{1,}")

但是上面的代码会先查看订单信,然后再输入数字

如果密码看起来像“hello1213”和“123hello”那么密码是可以接受的

1 个答案:

答案 0 :(得分:3)

如果您没有任何强制性字母或数字计划,那么这样做就可以了。

password.matches("^[a-zA-Z0-9]+$");

但是,如果您计划至少有一个数字和一个字母,那么试试这个:

password.matches("^(?=.*[0-9])(?=.*[a-zA-Z])[a-zA-Z0-9]+$");

(?=.*[0-9])是一个积极的预测,检查输入是否至少有一位数,而类似的前瞻性前瞻(?=.*[a-zA-Z])检查最小字母。

注意:由于您使用的是matches(),因此可以忽略正则表达式中的锚^ $。当您通过Pattern课程进行匹配时,这些是必需的。