加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d中移除微信昵称中的特殊字符(ios与android)

发布时间:2020-12-14 17:25:08 所属栏目:百科 来源:网络整理
导读:因项目需求,微信呢称中需要去掉特殊。直接上代码了。希望对大家有帮助 ios版: const char* IosHelper::removeEmoji(const char* str){ std::string strLen = str; NSString* username = [[NSString alloc] initWithBytes:str length:strLen.length() encod

因项目需求,微信呢称中需要去掉特殊。直接上代码了。希望对大家有帮助

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-u007eu4e00-u9fa5]";
    //NSString *regex = @"^[a-zA-Zu4e00-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-9u4e00-u9fa5]";
		 String regEx = "[^u0020-u007eu4e00-u9fa5]";
		 Pattern p = Pattern.compile(regEx);
		 Matcher m = p.matcher(str);		 
		 return m.replaceAll("").trim();
	 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读