iOS 实时监测textField中的内容类型(文字,数字,英文
2017-05-04 本文已影响37人
走向菜鸟的菜鸟
给需要监测的textField添加Target,使用UIControlEventEditingChanged监测输入框内容的变化。
[_customNameTF addTarget:self action:@selector(textFieldDidChange:) forControlEvents:(UIControlEventEditingChanged)];
当输入框的内容发生改变就会调用该方法
- (void)textFieldDidChange:(UITextField *)textField {
_warningLabel.text = [self checkContentTypeWithString:textField.text];
}
将输入框中的内容进行正则判断
- (NSString *)checkContentTypeWithString:(NSString*)password{
// 汉字条件
NSRegularExpression *tTxtRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[\u4e00-\u9fa5]" options:NSRegularExpressionCaseInsensitive error:nil];
//符合汉字条件的有几个字节
NSUInteger tTxtMatchCount = [tTxtRegularExpression numberOfMatchesInString:password options:NSMatchingReportProgress range:NSMakeRange(0, password.length)];
//数字条件
NSRegularExpression *tNumRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[0-9]" options:NSRegularExpressionCaseInsensitive error:nil];
//符合数字条件的有几个字节
NSUInteger tNumMatchCount = [tNumRegularExpression numberOfMatchesInString:password options:NSMatchingReportProgress range:NSMakeRange(0, password.length)];
//英文字条件
NSRegularExpression *tLetterRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[A-Za-z]" options:NSRegularExpressionCaseInsensitive error:nil];
//符合英文字条件的有几个字节
NSUInteger tLetterMatchCount = [tLetterRegularExpression numberOfMatchesInString:password options:NSMatchingReportProgress range:NSMakeRange(0, password.length)];
if(0 == password.length) {
// 无内容
return @"";
}else if(tLetterMatchCount == password.length) {
//全部符合英文,表示沒有数字
return @"全部为英文";
}else if(tNumMatchCount == password.length) {
//全部符合数字,表示沒有英文
return @"全部为数字";
}else if(tTxtMatchCount == password.length){
//全部为汉字
return @"全部为汉字";
} else if(tNumMatchCount + tLetterMatchCount == password.length) {
//符合英文和符合数字条件的相加等于密码长度
return @"全部为数字和英文结合";
} else if(tNumMatchCount + tLetterMatchCount + tTxtMatchCount == password.length) {
//内容为文字,数字,字母组合
return @"内容为文字,数字,字母组合";
}
return @"规则错误";
}
效果图:
WechatIMG26.jpeg
WechatIMG24.jpeg
WechatIMG25.jpeg
WechatIMG22.jpeg
WechatIMG23.jpeg