我尝试使用以下表达式来检查密码是否是数字和字母的组合,尽管字母和数字的顺序
password.matches("[a-zA-z]{1,}[0-9]{1,}")
但是上面的代码会先查看订单信,然后再输入数字
如果密码看起来像“hello1213”和“123hello”那么密码是可以接受的答案 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
课程进行匹配时,这些是必需的。