java 非法字符 u007f,iOS Emoji 表情的过滤及非法字符

//判断是否是emoji表情

- (BOOL)isEmoji:(NSString *)string;

//实现

- (BOOL)isEmoji:(NSString *)string {

if ([string length]<2)

{

return NO;

}

static NSCharacterSet *_variationSelectors;

_variationSelectors = [NSCharacterSet characterSetWithRange:NSMakeRange(0xFE00, 16)];

if ([string rangeOfCharacterFromSet: _variationSelectors].location != NSNotFound)

{

return YES;

}

const unichar high = [string characterAtIndex:0];

// Surrogate pair (U+1D000-1F9FF)

if (0xD800 <= high && high <= 0xDBFF)

{

const unichar low = [string characterAtIndex: 1];

const int codepoint = ((high - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;

return (0x1D000 <= codepoint && codepoint <= 0x1F9FF);

// Not surrogate pair (U+2100-27BF)

}

else

{

return (0x2100 <= high && high <= 0x27BF);

}

}

//去除表情规则

// \u0020-\\u007E 标点符号,大小写字母,数字

// \u00A0-\\u00BE 特殊标点 (¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾)

// \u2E80-\\uA4CF 繁简中文,日文,韩文 彝族文字

// \uFE30-\\uFE4F 特殊标点(︴︵︶︷︸︹)

// \uFF00-\\uFFEF 日文 (オカキクケコサ)

// \u2000-\\u201f 特殊字符(‐‑‒–—―‖‗‘’‚‛“”„‟)

// 注:对照表 http://blog.csdn.net/hherima/article/details/9045765

- (NSString *)noEmoji;

- (NSString *)noEmoji {

//去除表情规则

// \u0020-\\u007E 标点符号,大小写字母,数字

// \u00A0-\\u00BE 特殊标点 (¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾)

// \u2E80-\\uA4CF 繁简中文,日文,韩文 彝族文字

// \uFE30-\\uFE4F 特殊标点(︴︵︶︷︸︹)

// \uFF00-\\uFFEF 日文 (オカキクケコサ)

// \u2000-\\u201f 特殊字符(‐‑‒–—―‖‗‘’‚‛“”„‟)

// 注:对照表 http://blog.csdn.net/hherima/article/details/9045765

NSRegularExpression* expression = [NSRegularExpression regularExpressionWithPattern:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u2000-\\u201f\r\n]" options:NSRegularExpressionCaseInsensitive error:nil];

NSString* result = [expression stringByReplacingMatchesInString:self options:0 range:NSMakeRange(0, self.length) withTemplate:@""];

return result;

}

/** * 判断字符串中是否包含非法字符 *

@param content 需要判断的字符串 *

@return Yes: 包含;No: 不包含 */

- (BOOL)hasIllegalCharacter:(NSString *)content;

/** * 判断字符串中是否包含非法字符 *

@param content 需要判断的字符串 *

@return Yes: 包含;No: 不包含 */

- (BOOL)hasIllegalCharacter:(NSString *)content{

// 特殊字符

NSString *str = @"[^%@#^*&¥'~=$<>`\x22]+";

NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", str];

if (![emailTest evaluateWithObject:content]) {

return YES;

}

return NO;

}

声明以下均为google搜索得来,经过修改用于项目中,用作记录,如侵,则删.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值