最新消息:iOS编程开发交流群(6906921) ,Mac.Cocoa开发交流群(7758675) 欢迎iOS/macOS开发编程爱好及学习者加入!

NSPredicate正则进行TextField限制输入

iOS 天狐 7249浏览 0评论

实时限制输入方法很多 我个人钟爱使用正则表达式 比较灵活简单

NSString * regex = @"(^[a-zA-Z0-9]$)"; 限制只能输入字母和数字   其他限制类型可以参考正则语法

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString * currentString = textField.text;
    // 删除回退的时候返回yes
    if (string.length == 0 && range.length == 1) {
        return YES;
    }
    
    if (textField == self.vin) {
        
        NSString * regex = @"(^[a-zA-Z0-9]$)";
        NSPredicate * pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
        BOOL isMatch = [pred evaluateWithObject:string];
        BOOL lessThanMax = [currentString length] < 17;
        
        return (isMatch && lessThanMax)?YES:NO;

    }
    if (textField == self.engineNo) {
        NSString * regex = @"(^[a-zA-Z0-9]$)";
        NSPredicate * pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
        BOOL isMatch = [pred evaluateWithObject:string];
        //BOOL lessThanMax = [currentString length] < 6;

        return isMatch?YES:NO;

    }
    return YES;
}

 

转载请注明:天狐博客 » NSPredicate正则进行TextField限制输入

微信 OR 支付宝 扫描二维码
为天狐 打赏
非常感谢你的支持,哥会继续努力!
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址