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

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

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();
	 }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偶是江湖中人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值