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

来源:互联网 发布:南京大汉网络 双休 编辑:程序博客网 时间:2024/06/13 22:34

正则判断

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

所以,通过这两种方法,都可以限制某种类型的字符输入,如果要限制其他的 要么替换正则表达式 要么就是限制输入的具体字符就可以

0 0
原创粉丝点击