我需要使用以下规则验证密码:
密码必须包含6-12个字符,并且至少包含以下两个字符:大写字母、小写字母、数字或符号。以下是我目前的正则表达式:
^((?=.*[a-z])|(?=.*[A-Z])|(?=.*\\d)|(?=.*(_|[-+_!@#$%^&*.,?]))).{6,12}
我在纠结如何提出“至少”的条件。
你可以试试这个
^(?:(?=.*[a-z])(?:(?=.*[A-Z])(?=.*[\\d\\w])|(?=.*\\w)(?=.*\\d))|(?=.*\\w)(?=.*[A-Z])(?=.*\\d)).{6,12}$;
您可以定义一个函数来逐个检查您的需求,并增加一个计数器来查看实际满足了多少需求。如果匹配超过1个,并且字符串长度在6到12之间,则密码通过。
NSUInteger checkPassword(NSString * haystack) {
NSArray * arr = [NSArray arrayWithObjects: @"(?s).*\\d.*", @"(?s).*[a-z].*", @"(?s).*[A-Z].*", @"(?s).*[-+_!@#$%^&*.,?].*",nil];
NSUInteger cnt = 0;
for (NSUInteger index = 0; index < [arr count]; ++index) {
NSPredicate * passTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", [arr objectAtIndex:index]];
if ([passTest evaluateWithObject:haystack]) {
cnt = cnt + 1;
}
}
if (cnt > 1 && [haystack length] > 5 && [haystack length] < 13)
{
return 1;
}
else
{
return 0;
}
}
和一个IDEONE演示示例:
NSString * s = @"123DF4ffg";
NSLog(@"Result: %d", checkPassword(s));
// => Result: 1
请注意,可以为此编写单个模式,但它将相当长且笨拙,因为您需要定义所有可能的前瞻备选方案对。
我需要检查密码是否至少包含: 一个号码 一个小写字符 一个大写字符 一个特殊符号(.,@etc) 我在C#中有以下内容: 但这并不有效: 我错过了什么? 更新 我正在将其与系统.组件模型.数据注释一起使用来验证模型属性:
我正在编写一个正则表达式来验证密码。条件是: > 密码必须至少包含两个特殊字符 密码必须至少有八个字符长 我可以使用以下正则表达式确保至少有8个字符、至少一个字母表、至少一个数字和至少一个特殊字符: 我无法获得的唯一条件是必须至少有两个特殊字符(上面的Reg exp是至少一个特殊字符)。有人知道这件事吗? 提前谢谢。
有人能帮我理解为什么这不起作用吗 出于某种原因,它接受包含大小字母的密码,并验证包含数字和小写字母的密码。但它应该只验证是否满足了for规则中的3条。
问题内容: 谁能帮助我创建用于密码验证的正则表达式。 条件为“密码必须包含8个字符和至少一个数字,一个字母和一个唯一字符,例如 问题答案:
本文向大家介绍最新密码验证正则表达式,包括了最新密码验证正则表达式的使用技巧和注意事项,需要的朋友参考一下 正则表达式验证密码功能在项目中经常被使用到,但是很多朋友还是不大会使用密码正则表达式进行验证,本文小编为大家整理了php密码验证正则表达式、python密码强度正则,当然还有大家常用到的js正则表达式,希望大家喜欢。 刚开始复习一下,什么是正则表达式? 在编写处理字符串的程序或网页时,经常有
我有以下密码验证规则: 至少8个字符 我试图找到这个规则的正则表达式模式,最接近的是: 但这并不适用于所有规则。 我对正则表达式是新手,如果有任何可以学习正则表达式的资源,我将不胜感激。