您的位置:首页 > 移动开发 > IOS开发

[iOS] 限制输入中文的两个办法 ==>正则or键盘

2016-05-26 09:56 399 查看
正则判断

//  ^[\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;
}


所以,通过这两种方法,都可以限制某种类型的字符输入,如果要限制其他的 要么替换正则表达式 要么就是限制输入的具体字符就可以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: