使用或的正则表达式密码验证

时间:2016-03-21 07:38:28

标签: ios objective-c regex

我需要使用以下规则验证密码:

密码必须为6-12个字符 以及至少两个以下内容: 大写字母,小写字母,数字或符号。 以下是我目前的正则表达式:

^((?=.*[a-z])|(?=.*[A-Z])|(?=.*\\d)|(?=.*(_|[-+_!@#$%^&*.,?]))).{6,12}

我正在努力解决如何制造'至少'的问题。

2 个答案:

答案 0 :(得分:0)

您可以定义一个功能来逐个检查您的要求并增加一个计数器以查看实际满足的数量。如果匹配超过1且字符串长度在6到12之间,则密码通过。

NSString * s = @"123DF4ffg";
NSLog(@"Result: %d", checkPassword(s));
// => Result: 1

示例IDEONE demo

status_code: 200
return_content: yes
HEADER_Content-Type: "application/x-www-form-urlencoded"

注意可以为此编写单个模式,但由于您需要定义所有可能的前瞻替代方案,因此它将会相当长且笨拙。

答案 1 :(得分:0)

你可以试试这个

^(?:(?=.*[a-z])(?:(?=.*[A-Z])(?=.*[\\d\\w])|(?=.*\\w)(?=.*\\d))|(?=.*\\w)(?=.*[A-Z])(?=.*\\d)).{6,12}$;