iOS中对文本的字符限制示例详解

2020-01-21 06:19:53刘景俊

其实,对于此处判断来说,不用再去判断字母、数字还是汉字,对于超出的字符数,递归删除就好。

此方法 只适用于 中英文的输入,如果还需要输入表情,此方法就不适用了。

还有前面提到的 知识储备中的方法:

  • (NSUInteger)lengthOfBytesUsingEncoding:(NSStringEncoding)enc

    按照编码返回字节数

    Unicode:
    0x00-0x7F的字符,用单个字节来表示;
    0x80-0x7FF的字符用两个字节表示;
    0x800-0xFFFF的字符用3字节表示;

    汉字的unicode范围是:0x4E00~0x9FA5

    一个汉字 三个字符,不符合需求。

    • (unichar)characterAtIndex:(NSUInteger)index

      返回字符

      isascii是C语言中的字符检测函数。通常用于检查参数c是否为ASCII 码字符,也就是判断c 的范围是否在0 到127 之间。

      
      unichar uc = [text characterAtIndex: i];
      asciiLength += isascii(uc) ? 1 : 2;