1,当键盘为中文输入法时,移除联想时中间的空格字符
<pre><code>
正则表达式 \w \s \d \b 2012-09-19 22:21:49
分类: Python/Ruby
正则表达式 \w \s \d \b
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'。
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
\w能不能匹配汉字要视你的操作系统和你的应用环境而定
</code></pre>
<pre><code>
- (NSString *) removeWhitespace
{
return [self stringByReplacingOccurrencesOfString:@"\s" withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, [self length])];
}
</code></pre>
2,过滤Emoji
<pre><code>
-
(NSString*)removeEmojiWithInputString :(NSString )str {
__block NSMutableString temp = [NSMutableString string];[str enumerateSubstringsInRange: NSMakeRange(0, str.length) options:NSStringEnumerationByComposedCharacterSequences usingBlock:
^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){const unichar hs = [substring characterAtIndex: 0]; // surrogate pair if (0xd800 <= hs && hs <= 0xdbff) { const unichar ls = [substring characterAtIndex: 1]; const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000; [temp appendString: (0x1d000 <= uc && uc <= 0x1f77f)? @"": substring]; // U+1D000-1F77F // non surrogate } else { [temp appendString: (0x2100 <= hs && hs <= 0x26ff)? @"": substring]; // U+2100-26FF }
}];
return temp;
}
</code></pre>
网友评论