有些时候,有些特殊要求,不能输入一些符号.这就要去遍历输入的字符是否符合要求.
设置一个字符集,英文大小写52个字母,数字0~9,还有一些标点符号. 重点是如何设置汉字的字符集. 代码如下:
NSMutableCharacterSet *aCharacterSet = [[NSMutableCharacterSet alloc] init];
//添加中文字符
NSRange lcChineseRange;
lcChineseRange.location = (unsigned int)0x4e00;
lcChineseRange.length = (unsigned int)0x9fff - (unsigned int)0x4e00;
[aCharacterSet addCharactersInRange:lcChineseRange];
NSRange lcChineseRange6;
lcChineseRange6.location = (unsigned int)0x2F00;
lcChineseRange6.length = (unsigned int)0x2F04 - (unsigned int)0x2F00;
[aCharacterSet addCharactersInRange:lcChineseRange6];
NSRange lcChineseRangeA;
lcChineseRangeA.location = (unsigned int)0x3400;
lcChineseRangeA.length = (unsigned int)0x4DBF - (unsigned int)0x3400;
[aCharacterSet addCharactersInRange:lcChineseRangeA];
NSRange lcChineseRangeB;
lcChineseRangeB.location = (unsigned int)0x20000;
lcChineseRangeB.length = (unsigned int)0x2A6DF - (unsigned int)0x20000;
[aCharacterSet addCharactersInRange:lcChineseRangeB];
NSRange lcChineseRangeC;
lcChineseRangeC.location = (unsigned int)0x2A700;
lcChineseRangeC.length = (unsigned int)0x2B73F - (unsigned int)0x2A700;
[aCharacterSet addCharactersInRange:lcChineseRangeC];
NSRange lcChineseRangeD;
lcChineseRangeD.location = (unsigned int)0x2B740;
lcChineseRangeD.length = (unsigned int)0x2B81F - (unsigned int)0x2B740;
[aCharacterSet addCharactersInRange:lcChineseRangeD];
//添加英文字符及标点符号
[aCharacterSet addCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];
[aCharacterSet addCharactersInString:@"0123456789"];
[aCharacterSet addCharactersInString:@" /#'-\\!?,.:;\"`*+-|_$@&^{}[]()<>%"];
[aCharacterSet addCharactersInString:@" ¥$$€£₩¥@「」『』「」()()⦅⦆;;::•。.,,、??¿!!‼"\"“”„[][]〔〕【】{}{}##‱‰-•–—**++__\\||<>≪≫〈〉《》<>﹤﹥«»''‘’"];
然后在输入结束的代理方法中将不符合要求的字符替换掉就可以了.