正则

作者: 魔力双鱼 | 来源:发表于2018-11-28 20:25 被阅读0次

只允许输入汉字、英文字母(姓名输入框)

NSArray *array = @[@"",@"1",@"e",@"zz11",@"呵呵",@"进口23",@"ee画",@" "];
    for (NSString *str in array) {
        BOOL b = [self isInputRule:str];
        NSLog(@"%@:正则结果%@",str,b?@"YES":@"NO");
    }

控制台输出结果:

2018-11-28 20:16:20.706204+0800 zhengze[1074:37374] :正则结果NO
2018-11-28 20:16:20.706383+0800 zhengze[1074:37374] 1:正则结果NO
2018-11-28 20:16:20.706501+0800 zhengze[1074:37374] e:正则结果YES
2018-11-28 20:16:20.706601+0800 zhengze[1074:37374] zz11:正则结果NO
2018-11-28 20:16:20.706685+0800 zhengze[1074:37374] 呵呵:正则结果YES
2018-11-28 20:16:20.706787+0800 zhengze[1074:37374] 进口23:正则结果NO
2018-11-28 20:16:20.706873+0800 zhengze[1074:37374] ee画:正则结果YES
2018-11-28 20:16:20.706974+0800 zhengze[1074:37374]  :正则结果NO
//只要中文和字母a-zA-Z  ➋➌➍➎➏➐➑➒是9宫格键盘输入时
- (BOOL)isInputRule:(NSString *)str {
    NSString *pattern = @"^[a-zA-Z\u4e00-\u9fa5➋➌➍➎➏➐➑➒]+$";
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
    BOOL isMatch = [pred evaluateWithObject:str];
    return isMatch;
}

参考:
UITextField只限中文、英文、数字输入和限制字符个数的实现方法
iOS 只能输入英文字母、数字、汉字
iOS-Main-UITextField只允许输入中,英文,数字

只允许输入数字、英文字母(身份证输入框)

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    if (textField == self.userCardNumTextField){//数字 字母
        NSUInteger lengthOfString = string.length;
        for (NSInteger loopIndex = 0; loopIndex < lengthOfString; loopIndex++) {
            unichar character = [string characterAtIndex:loopIndex];
            //将输入的值转化为ASCII值(即内部索引值),可以参考ASCII表
            // 48-57;{0,9};65-90;{A..Z};97-122:{a..z}
            if (character < 48) return NO; // 48 unichar for 0
            if (character > 57 && character < 65) return NO;
            if (character > 90 && character < 97) return NO;
            if (character > 122) return NO;
        }

        NSUInteger proposedNewLength = textField.text.length - range.length + string.length;
        if (proposedNewLength > 18) {
            return NO;//限制长度
        }
    }

    return YES;
}

可见ASCII码

ASCII表

相关文章

  • java正则使用

    正则切割 正则捕获 正则完全匹配

  • regexp 正则包

    正则对象 正则使用都是通过创建对应的正则对象,调用对象方法所实现。 新建正则对象 正则对象属性方法 正则方法 一般...

  • 个人书画作品之四

    写楷心得 字正则心正,心正则人正,人正则德正,德正则身正, 身正则形正,形正则意正, 意正则气正,一气化三清。 ...

  • 第七天正则表达式

    正则表达式的理念: 正则的使用方法: 正则里string两个方法: 使用正则找字母的几种写法: 正则的转义: 正则...

  • 心正笔正

    心正则意正!心正则身正! 心正则言正!心正则行正! 心正则笔正!心正则字正! 心正则并勤!勤尽则字成! 心清则目明...

  • git一次删除多个文件

    正则 非正则

  • day17-正则表达式

    正则表达式符号含义 通配符与正则区别? 正则表达式中注意事项 正则表达式分类: 基本正则(BRE) ※ 扩展正则表...

  • Js正则匹配常用案例

    1 用户名正则 2 密码强度正则 3 整数正则 4 数字正则 5 Email正则 6 手机号码正则 7 身份证号正...

  • 前端表单验证常用的15个JS正则表达式

    1.用户名正则 2 密码强度正则 3 整数正则 4 数字正则 5 Email正则 6 手机号码正则 7 身份证号正...

  • 2019-06-15 JS

    email正则, url正则

网友评论

      本文标题:正则

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