Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用于密码验证的正则表达式-目标C_Ios_Objective C_Nsregularexpression - Fatal编程技术网

Ios 用于密码验证的正则表达式-目标C

Ios 用于密码验证的正则表达式-目标C,ios,objective-c,nsregularexpression,Ios,Objective C,Nsregularexpression,我需要一个正则表达式,可以验证以下情况 长度为8到20个字符 至少使用1个大写字母、1个小写字母和1个数字 同一数字或字母不能连续重复3次以上 不包含空格,并且只能使用这些字符 @ # * ( ) + = { } / ? ~ ; , . - _ 我能找到的最接近的解决办法是 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z])(?=.*[@(#*){+=}/?~;,._]).{8,20}$ 但包含以下问题: 接受空间 无法添加-字符 连续三次以

我需要一个正则表达式,可以验证以下情况

  • 长度为8到20个字符
  • 至少使用1个大写字母、1个小写字母和1个数字
  • 同一数字或字母不能连续重复3次以上
  • 不包含空格,并且只能使用这些字符 @ # * ( ) + = { } / ? ~ ; , . - _
我能找到的最接近的解决办法是

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z])(?=.*[@(#*){+=}/?~;,._]).{8,20}$
但包含以下问题:

  • 接受空间
  • 无法添加
    -
    字符
  • 连续三次以上重复相同的数字或字母
编辑:修复了重复字符的问题,并具有如下最终表达式:

^(?!.*?(.)\1{3})(?!.* )(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*[:£€&"!'[\]%^\|<>$]).{8,20}$ 

}

可能重复的您是否尝试过为这些需求编写一些代码?@Abhi否。请阅读这两个问题,然后标记为重复。我已经详细提到了我的问题。@vaibhav我提到了我的代码。与我的解决方案有点接近的正则表达式。^(?=.[a-z])(?=.[a-z])(?=.[a-z])(?=.[$@$!%*?&])[a-Za-z\\d$@$!%*?&]{8,}为了避免空格,如果字符串有空格,它将显示您是否尝试为这些要求编写代码的警报或可能的副本?@Abhi否。请阅读这两个问题,然后标记为重复。我已经详细提到了我的问题。@vaibhav我提到了我的代码。有点接近我的解决方案的正则表达式。^(?=.[a-z])(?=.[a-z])(?=.*\\d)(?=.[$@$!%*?&])[a-Za-z\\d$@$!%*?&]{8}为了避免空格,如果字符串有空格,它将向您显示警告或警告
- (BOOL)string:(NSString *)text matches:(NSString *)pattern{

NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];

NSArray *matches = [regex matchesInString:text options:0 range:NSMakeRange(0, text.length)];

return matches.count > 0;