其实,对于此处判断来说,不用再去判断字母、数字还是汉字,对于超出的字符数,递归删除就好。
此方法 只适用于 中英文的输入,如果还需要输入表情,此方法就不适用了。
还有前面提到的 知识储备中的方法:
-
(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;
-
(unichar)characterAtIndex:(NSUInteger)index










