身份证号键盘输入限制开发总结

身份证号键盘输入限制开发总结:

 

需要注意的问题:

1 输入框限制的输入字符

2,输入框限制的输入个数限制

3,不同样式的原生键盘,比如九宫格键盘,英文状态下,长按键盘方式输入字母x 会出现一次连出两个x的字符(即使已超过了限制的 位数), 并且由于对字符限制了位数不能再变化输入的内容,所以也不能删除单个字符


解决方式:

1,输入框限制的输入字符(知识点:字符串_过滤处理NSCharacterSet invertedSet


//限制输入内容

    NSCharacterSet* cs;

    cs = [[NSCharacterSet  characterSetWithCharactersInString:limitStr]  invertedSet];

    NSString* filtered = [[string  componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

    BOOL canChange = [string   isEqualToString:filtered];

    return canChange;


备注:

1limitStr :是一个包含所有符合要求字符的字符串;

2 invertedSet方法是去反字符,把所有的 除了limitStr里的字符都找出来(包含去空格功能);

3componentsSeparatedByCharactersInSet 字符串的拆分 ,在字符串中遇到字符集合类NSCharacterSet 字符就拆分 ,返回的是一个数组类型,用法:


有字符串“A~B^C" ,我拆分为 "A", "B" "C"?

NSString *str = @"A~B^C";

NSArray *arr = [str componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"^~"]];

NSLog(@"%@", arr);

4 componentsJoinedByString :数组中所有元素拼接成字符串,ByString后面的参数是拼接各个元素的分隔符。

如:[array compontsJoinedByString:@","]; ,即,把数组array 中的所有元素通过分隔符拼接成字符串。

5characterSetWithCharactersInString :通过 字符串参数 获取 NSCharacterSet 字符集合


过滤掉非法字符的核心思路:

通过合法字符串构建的NSCharacterSet  去反(invertedSet 获取的非法字符集合对象NSCharacterSet类,先将要判断的字符串通过非法字符集合作为分隔符 分割字符串 成一个个元素返回一个数组(作为分隔符的非法字符在遇到的时候不仅要分割字符串,并且去掉,那么数组中装的都是合法 字符), 再将该数组进行拼接字符串 ,这样就可以过滤掉非法字符。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值