js过滤输入的emoji表情

因为emoji表情是Unicode编码, 在某些流浪器上会显示乱码, 有的数据库字节不够也无法存储, 网上有很多解决此类问题的办法, 最简单的莫过于将emoji表情替换成文本, 比如 [表情][表情]哈哈

我看见的又好几种写法

var regStr = /\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f]|\ud83d[\ude80-\udeff]/ig;
var testStr = '哈哈😆你好🙃';
var result = testStr.replace(regStr, '[表情]');
console.log(result);  // 哈哈[表情]你好[表情]

还有一种比较麻烦的写法

var regStr = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig;
var testStr = '哈哈😆你好🙄';
var result = testStr.replace(regStr, '[表情]');
console.log(result);  // 哈哈[表情]你好[表情]

 

posted on 2018-01-29 17:11  sjpqy  阅读(2919)  评论(0编辑  收藏  举报

导航