有人能帮我理解为什么这不起作用吗
public boolean validatePassword(String pass){
final int MIN_LENGTH = 6;// Minimum length 6
// check if password is correct length and that it does not
// contain any invalid characters
if(pass.length() >= MIN_LENGTH && !pass.matches("(.*)[^.-_+!?=a-zA-Z0-9](.*)")){
// 4 rules, 3 should be fulfilled
// 1: Contain upper characters (A-Z)
// 2: Contain lower characters (a-z)
// 3: Contain numbers (0-9)
// 4: Contain following character . - _ + ! ? =
int ruleCount = 0; // counting fulfilled rules
if(pass.matches("(.*)[A-Z](.*)")) ruleCount++;
if(pass.matches("(.*)[a-z](.*)")) ruleCount++;
if(pass.matches("(.*)[0-9](.*)")) ruleCount++;
if(pass.matches("(.*)[.-_+!?=](.*)")) ruleCount++;
if(ruleCount >= 3) return true; // password verified
}
// password not verified
return false;
}
出于某种原因,它接受包含大小字母的密码,并验证包含数字和小写字母的密码。但它应该只验证是否满足了for规则中的3条。
AFIK,匹配是一种模式方法,而不是字符串。
boolean b = Pattern.matches("a.*", text) ;
您应该使用:
if(Pattern.matches(".*[A-Z].*", pass)) ruleCount++;
等等用于其他测试。
你最后一张支票错了。请注意,-
定义了类似于[A-Z]
的组中的范围。
别忘了像这样使用:
if(pass.matches("(.*)[.\\-_+!?=](.*)")) ruleCount++;
我需要检查密码是否至少包含: 一个号码 一个小写字符 一个大写字符 一个特殊符号(.,@etc) 我在C#中有以下内容: 但这并不有效: 我错过了什么? 更新 我正在将其与系统.组件模型.数据注释一起使用来验证模型属性:
我正在编写一个正则表达式来验证密码。条件是: > 密码必须至少包含两个特殊字符 密码必须至少有八个字符长 我可以使用以下正则表达式确保至少有8个字符、至少一个字母表、至少一个数字和至少一个特殊字符: 我无法获得的唯一条件是必须至少有两个特殊字符(上面的Reg exp是至少一个特殊字符)。有人知道这件事吗? 提前谢谢。
问题内容: 谁能帮助我创建用于密码验证的正则表达式。 条件为“密码必须包含8个字符和至少一个数字,一个字母和一个唯一字符,例如 问题答案:
本文向大家介绍最新密码验证正则表达式,包括了最新密码验证正则表达式的使用技巧和注意事项,需要的朋友参考一下 正则表达式验证密码功能在项目中经常被使用到,但是很多朋友还是不大会使用密码正则表达式进行验证,本文小编为大家整理了php密码验证正则表达式、python密码强度正则,当然还有大家常用到的js正则表达式,希望大家喜欢。 刚开始复习一下,什么是正则表达式? 在编写处理字符串的程序或网页时,经常有
我需要使用以下规则验证密码: 密码必须包含6-12个字符,并且至少包含以下两个字符:大写字母、小写字母、数字或符号。以下是我目前的正则表达式: 我在纠结如何提出“至少”的条件。
我有以下密码验证规则: 至少8个字符 我试图找到这个规则的正则表达式模式,最接近的是: 但这并不适用于所有规则。 我对正则表达式是新手,如果有任何可以学习正则表达式的资源,我将不胜感激。