美文网首页
iOS TextField限制只能输入身份证内容

iOS TextField限制只能输入身份证内容

作者: 野生塔塔酱 | 来源:发表于2017-11-17 14:11 被阅读32次
NSCharacterSet *_set = [NSCharacterSet characterSetWithCharactersInString:@"0123456789xX"];;

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    
         if ([string isEqualToString:@""]) {//退格键 如果不加这句 无法删除输入的内容
            return YES;
        }
        
        if (textField.text.length >= 18) {//大于18位无法再继续输入
            return NO;
        }
        
        NSRange range = [string rangeOfCharacterFromSet:_set];
        
        //判断输入的内容是否是规定的内容范围内 如果不是不做更改 如果是才输入
        if (range.length == 0) {
            return NO;
        }else{
            return YES;
        }
   
    return YES;
    
}

如果只是需要判断一个字符串是否是身份证格式还可以用正则表达式判断

+ (BOOL)validateIdentityCard:(NSString *)identityCard
{
    if (identityCard.length <= 0) {
        return NO;
    }
    NSString *regex = @"^(\\d{14}|\\d{17})(\\d|[xX])$";
    NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [identityCardPredicate evaluateWithObject:identityCard];
}

相关文章

网友评论

      本文标题:iOS TextField限制只能输入身份证内容

      本文链接:https://www.haomeiwen.com/subject/uvzdvxtx.html