js 怎么把emoji表情给过滤掉

JavaScript010

1,确定你的emoji的引入途径或者是否在项目内部加载了这个插件;

2,找到emoji引入的途径,把它关闭,并在JS代码内删除引入emoji的调用方法

3,把该表情的HTML部分删除或者设置为隐藏

4,如果你以上3步都没办法做到,那么可以考虑直接找到emoji表情存放页面的HTML直接删除甚至使用DIV覆盖(不推荐)

emoji表情的编码解码

该方法实体编码后内容在页面是可以直接显示的,不需要解码,只有在js中才需要解码,同名的php函数具有相同编码功能

下面这句是js编码方法,直接带入字符串就可以直接复制到项目中使用了

function emoji_encode(e){var n=/[\ud800-\udbff][\udc00-\udfff]/greturn e=e.replace(n,function(e){var n,rreturn 2===e.length?(n=e.charCodeAt(0),r=e.charCodeAt(1),""+(1024*(n-55296)+65536+r-56320)+""):e})}

下面是经过上面编码后,在js环境下乳 uni-app的h5页面中调用,需要调用下面的解码才能正常显示。

function emoji_decode(e){var n=/\.*?/greturn e.replace(n,function(e){var n,r,treturn 9==e.length?(t=parseInt(e.match(/[0-9]+/g)),n=Math.floor((t-65536)/1024)+55296,r=(t-65536)%1024+56320,unescape("%u"+n.toString(16)+"%u"+r.toString(16))):e})}

php环境下的编码通过下面方法调用代入str参数就可以了实现编码了 

function emoji_encode($str){

    preg_match_all('/./u',$str,$matches)

    $unicodeStr = ""

    foreach($matches[0] as $m){

        $unicodeStr .=(strlen($m) >= 4 )?"".base_convert(bin2hex(iconv('UTF-8',"UCS-4",$m)),16,10).'':$m

    }

    return $unicodeStr

}

1、判断字符串是否是表情

2、获取字符串的所有表情字符串 或 所有非表情字符串

3、将表情字符串转成 HtmlDecimal 如: -> #128516

4、将表情字符串转成 Hexadecimal 如 : -> #x1f466

5、将表情字符串转成Unicode

6、 (3,4,5)的翻转

7、表情语义分析