欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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类