iOS 设置密码8-16位,必须包含字母和数字(可包含其他特殊字符)
2017-08-15 10:16
5749 查看
一开始写了个正则表达式,如下,发现并没有满足条件,下面这个是只能包含字母和数字
通过想了下,其实只需要判断,这个字符串里面,至少包含一个数字和至少一个字母,其他可以包含 + - _,可以用如下表达式来判断
+(BOOL)judgePassWordLegal:(NSString *)pass{ BOOL result = false; if ([pass length] >= 8 && [pass length] <= 16){ // 判断长度大于8位后再接着判断是否同时包含数字和字符 NSString * regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$"; NSPredicate *pred = [NSPredicate pred 4000 icateWithFormat:@"SELF MATCHES %@", regex]; result = [pred evaluateWithObject:pass]; } return result; }
通过想了下,其实只需要判断,这个字符串里面,至少包含一个数字和至少一个字母,其他可以包含 + - _,可以用如下表达式来判断
-(BOOL)isValidPasswordString { BOOL result = NO; if ([self length] >= 8 && [self length] <= 16){ //数字条件 NSRegularExpression *tNumRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[0-9]" options:NSRegularExpressionCaseInsensitive error:nil]; //符合数字条件的有几个 NSUInteger tNumMatchCount = [tNumRegularExpression numberOfMatchesInString:self options:NSMatchingReportProgress range:NSMakeRange(0, self.length)]; //英文字条件 NSRegularExpression *tLetterRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[A-Za-z]" options:NSRegularExpressionCaseInsensitive error:nil]; //符合英文字条件的有几个 NSUInteger tLetterMatchCount = [tLetterRegularExpression numberOfMatchesInString:self options:NSMatchingReportProgress range:NSMakeRange(0, self.length)]; if(tNumMatchCount >= 1 && tLetterMatchCount >= 1){ result = YES; } } return result; }
相关文章推荐
- Java随机密码生成器,Java随机生成长度不少于6的指定长度的密码,且这个字符串必须包含大小写字母、数字和特殊字符,四种的任意三种
- Java随机生成长度不少于6的指定长度的密码,且这个字符串必须包含大小写字母、数字和特殊字符,四种的任意三种
- 自定义表单验证,密码是否包含数字、字母、特殊字符的至少2种
- JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
- 正则表达式必须包含字母.数字和特殊字符写法(转载Do the Right Thing Right.)
- 密码等级:至少包含字母、大小写数字、特殊字符 JS
- 密码同时包含6~18位数字和大小写字母,不包含特殊字符的判断方法(正则表达式)
- 正则表达式(必须包含字母.数字和特殊字符) 转载Do the Right Thing Right.
- 必须包含“数字”,“字母”,“特殊字符” 两种以上的正在表达式!
- 密码只能输入字母+数字不能包含特殊字符的校验规则
- 密码同时包含8~20位数字和大小写字母,不包含特殊字符的判断方法(正则表达式)
- javascript正则表达式验证密码(必须含数字字符特殊符号,长度4-16位之间)
- JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
- js正则表达式验证密码强度,必须包含数字,大写字母,小写字母,特殊字符四选三
- iOS 用户密码 数字字母特殊符号设置 判断
- javasScript正则表达式验证密码(必须含数字字符特殊符号,长度4-16位之间)
- 正则表达式——设置密码包含8到16位数字和字母
- 输入一个字符串,分别统计出包含的英文字母、数字、空格和其他字符的个数
- C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密
- vs2005中“密码最短长度为7,其中必须包含以下非字母数字字符: 1”错误 (转载)