正则判断
// ^[\u4e00-\u9fa5]*$ 限制只能输入中文的正则
if(![self matchStringFormat:self.accountTextField.text withRegex:@"^[\u4e00-\u9fa5]*$"]){
[MBProgressHUD showHUDAddedTo:self.view WithString:@"请输入中文,不能包含字母或数字"];
}
#pragma mark - 正则判断
- (BOOL)matchStringFormat:(NSString *)matchedStr withRegex:(NSString *)regex
{
//SELF MATCHES一定是大写
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
return [predicate evaluateWithObject:matchedStr];
}
键盘限制
textfiled的代理方法 (这样限定后的字符,键盘输入时 将不能显示)
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; // return NO to not change text
{
if (textField.tag == 1000991) {
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ALPHANUM] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
if ([string isEqualToString:@""]) {
return YES;
}
if ([string isEqualToString:filtered]) {
return NO;
}else{
return YES;
}
}
return YES;
}
所以,通过这两种方法,都可以限制某种类型的字符输入,如果要限制其他的 要么替换正则表达式 要么就是限制输入的具体字符就可以