iOS 字符串中去除特殊符号 stringByTrimmingCharactersInSet

/ 0评 / 0

先上个例子:

NSString * str1 =[nameInput.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString * str2 =[passwdInput.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
[self.delegate loginActionInView:self name:str1 passwd:str2];

在iOS中 可以使用stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号
首先自己定义一个NSCharacterSet, 包含需要去除的特殊符号

NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"@/:;()¥「」"、[]{}#%-*+=_\\|~<>$€^•'@#$%^&*()_+'\""];

由于NSString中有全角符号和半角符号, 因此有些符号要包括全角和半角的
然后调用stringByTrimmingCharactersInSet

NSString *trimmedString = [string stringByTrimmingCharactersInSet:set];
//trimmedString就是过滤后的字符串

去除 username中的空格,table newline,nextline
代码如下:(三行代码)

NSCharacterSet *whitespace = [NSCharacterSet  whitespaceAndNewlineCharacterSet]; 
NSString * username = [mUsernameField  stringValue]; 
username = [username  stringByTrimmingCharactersInSet:whitespace]; 

注释:

stringByTrimmingCharactersInSet:
Returns a new string made by removing from both ends of the receiver characters contained in a given character set.
whitespaceAndNewlineCharacterSet
Returns a character set containing only the whitespace characters space (U+0020) and tab (U+0009) and the newline and nextline characters (U+000A–U+000D, U+0085).

另外可以用 whitespaceCharacterSet 替换 whitespaceAndNewlineCharacterSet 区别newline nextline
whitespaceCharacterSet
Returns a character set containing only the in-line whitespace characters space (U+0020) and tab (U+0009).

 
NSString *temptext = [messageTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSString *text = [temptext stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet ]];
//第1行是去除2端的空格
//第2行是去除回车

评论已关闭。