iOS,OC过滤字符串中的特殊字符
程序员文章站
2024-01-14 21:16:28
...
遇到一个需求需要过滤用户通讯录中的特殊字符串,研究了一下iOS的特殊字符串过滤方法。
首先定义一个NSCharacterSet,用来保存需要过滤的字符:
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"[ _`[email protected]#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t"];
然后首先找到了stringByTrimmingCharactersInSet方法:
NSString *trimmedString = [string stringByTrimmingCharactersInSet:set];
trimmedString就是过滤后的字符串,但是发现stringByTrimmingCharactersInSet方法只能过滤字符串收尾两端的特殊字符串,字符串中间的特殊字符无法过滤。
然后询问了安卓同学的实现方法,是把特殊字符替换为空字符串。随后我在iOS中也找到了类似的方法。
NSString *newname = [[name componentsSeparatedByCharactersInSet:set] componentsJoinedByString:@""];
大工告成,完美去除字符串中的特殊字符!
另外还有一种方法就是一个一个字符串进行替换
使用stringByReplacingOccurrencesOfString这个方法将字符串里的非法字符逐个替代
具体代码如下:
hmutStr = [tempString stringByReplacingOccurrencesOfString:@" " withString:@""];
hmutStr = [tempString stringByReplacingOccurrencesOfString:@"#" withString:@""];
hmutStr = [tempString stringByReplacingOccurrencesOfString:@"*" withString:@""];
hmutStr = [tempString stringByReplacingOccurrencesOfString:@"+" withString:@""];
hmutStr = [tempString stringByReplacingOccurrencesOfString:@"-" withString:@""];
上一篇: 刷新加载(OC_UI)
下一篇: 2.OC类