cocos2d中移除微信昵称中的特殊字符(ios与android)
2017-09-01 09:07
791 查看
因项目需求,微信呢称中需要去掉特殊。直接上代码了。希望对大家有帮助
ios版:
const char* IosHelper::removeEmoji(const char* str)
{
std::string strLen = str;
NSString* username = [[NSString alloc] initWithBytes:str length:strLen.length() encoding:NSUTF8StringEncoding];
cocos2d::log("IosHelper::removeEmoji username0 = %s",str);
NSLog(@"IosHelper::removeEmoji username1 = %@",username);
//NSString *regex = @"^[a-zA-Z0-9_\u4e00-\u9fa5]+$";
NSString *regex = @"[\u0020-\u007e\u4e00-\u9fa5]";
//NSString *regex = @"^[a-zA-Z\u4e00-\u9fa5]+";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
NSString *temp = nil;
//NSLog(@"IosHelper::removeEmoji username = %d",[username length]);
for(int i = 0; i < [username length]; i++)
{
temp = [username substringWithRange:NSMakeRange(i, 1)];
//NSLog(@"i = %d char = %x str = %@",i, temp,temp);
if ([predicate evaluateWithObject:temp]) {
//NSLog(@"This character is OK");
} else {
NSRange range = NSMakeRange(i, 1);
username = [username stringByReplacingCharactersInRange:range withString:@" "];
}
}
NSString *withoutEmojiUsername = [username stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"IosHelper::removeEmoji username2 = %@",withoutEmojiUsername);
const char* retStr = [withoutEmojiUsername UTF8String];
cocos2d::log("IosHelper::removeEmoji username3 = %s",retStr);
return retStr;
}android
public static String RemoveEmoji(String str)
{
//String regEx = "[^A-Za-z0-9\u4e00-\u9fa5]";
String regEx = "[^\u0020-\u007e\u4e00-\u9fa5]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
ios版:
const char* IosHelper::removeEmoji(const char* str)
{
std::string strLen = str;
NSString* username = [[NSString alloc] initWithBytes:str length:strLen.length() encoding:NSUTF8StringEncoding];
cocos2d::log("IosHelper::removeEmoji username0 = %s",str);
NSLog(@"IosHelper::removeEmoji username1 = %@",username);
//NSString *regex = @"^[a-zA-Z0-9_\u4e00-\u9fa5]+$";
NSString *regex = @"[\u0020-\u007e\u4e00-\u9fa5]";
//NSString *regex = @"^[a-zA-Z\u4e00-\u9fa5]+";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
NSString *temp = nil;
//NSLog(@"IosHelper::removeEmoji username = %d",[username length]);
for(int i = 0; i < [username length]; i++)
{
temp = [username substringWithRange:NSMakeRange(i, 1)];
//NSLog(@"i = %d char = %x str = %@",i, temp,temp);
if ([predicate evaluateWithObject:temp]) {
//NSLog(@"This character is OK");
} else {
NSRange range = NSMakeRange(i, 1);
username = [username stringByReplacingCharactersInRange:range withString:@" "];
}
}
NSString *withoutEmojiUsername = [username stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"IosHelper::removeEmoji username2 = %@",withoutEmojiUsername);
const char* retStr = [withoutEmojiUsername UTF8String];
cocos2d::log("IosHelper::removeEmoji username3 = %s",retStr);
return retStr;
}android
public static String RemoveEmoji(String str)
{
//String regEx = "[^A-Za-z0-9\u4e00-\u9fa5]";
String regEx = "[^\u0020-\u007e\u4e00-\u9fa5]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
相关文章推荐
- cocos2d中去掉微信呢称中的表情字符(ios与android)
- 【IOS和Android】Cocos2d-x 集成微信分享功能
- 解决微信昵称含特殊表情或字符无法存入数据库异常
- 解决微信登录时昵称中包含特殊字符,不能存入数据库问题
- iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?
- cocos2d-x集成sharesdk做微信分享android,ios
- 微信昵称特殊字符存储 PHP MYSQL
- mysql保存微信昵称特殊字符
- 解决微信昵称特殊字符存放数据库报错问题
- 获取微信昵称时 过滤特殊字符
- php解决微信开发中用户昵称中的特殊字符与emoji表情写入mysql错误的问题
- mysql保存微信昵称特殊字符的方法
- 手把手教你把pomelo客户端组件libpomelo加入cocos2d-x 3.0项目(Windows、Android、IOS平台)
- cocos2d-x开发完iOS后改为Android遇到的一些问题
- iOS开发中手机号码和价格金额有效性判断及特殊字符的限制
- Cocos2d-x在win32,android和IOS下的文件读写问题
- 替换Android string.xml中特殊字符
- cocos2d-x的初步学习二十一之iosandroid跨平台环境配置
- cocos2d-x的初步学习二十一之iosandroid跨平台环境配置
- iOS网址识别url中包含有特殊字符时需要转义