碰到在搜索框中過濾非法字符的問題,傳統的用while循環來操作就顯得太繁瑣,ios 的 NSString 裏有相關的方法可以解決此問題。如下:
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"~!@#$%^&*+?/="];
tempString = [[tempString componentsSeparatedByCharactersInSet: doNotWant]componentsJoinedByString: @""];
注意:不能用stringByTrimmingCharactersInSet這個方法過濾,它只能把字符串兩端的非法字符過濾,但是不能把包含在字符串裏的非法字符過濾掉。
當然,除了過濾操作還有判斷字符串裏是否有非法字符的操作,可以按如下辦法進行:
NSCharacterSet *errorCharStr = [NSCharacterSet
characterSetWithCharactersInString:@"~!@#$%^&*+?/="];
NSRange range = (NSRange){65535,0};
range = [str rangeOfCharacterFromSet:errorCharStr];
if (range.length >
0) {
return YES;
}
如果range的length屬性大於 0,則說明字符串裏含有非法字符。