过滤emoji表情符

Posted 李先森博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤emoji表情符相关的知识,希望对你有一定的参考价值。

1.使用正则匹配

public  function remove_emoji($text){
        return preg_replace(‘/([0-9|#][\x{20E3}])|[\x{00ae}|\x{00a9}|\x{203C}|\x{2047}|\x{2048}|\x{2049}|\x{3030}|\x{303D}|\x{2139}|\x{2122}|\x{3297}|\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{FEFF}]?|[\x{2460}-\x{24FF}][\x{FE00}-\x{FEFF}]?|[\x{25A0}-\x{25FF}][\x{FE00}-\x{FEFF}]?|[\x{2600}-\x{27BF}][\x{FE00}-\x{FEFF}]?|[\x{2900}-\x{297F}][\x{FE00}-\x{FEFF}]?|[\x{2B00}-\x{2BF0}][\x{FE00}-\x{FEFF}]?|[\x{1F000}-\x{1F6FF}][\x{FE00}-\x{FEFF}]?/u‘, ‘‘, $text);
    }

2.

 /**
    把用户输入的文本转义(主要针对特殊符号和emoji表情)
     */
    public static function filterEmoji($str){
        if(!is_string($str))return $str;
        if(!$str || $str==‘undefined‘)return ‘‘;

        $text = json_encode($str); //暴露出unicode
        $text = preg_replace_callback("/(\\\u[ed][0-9a-f]{3}){2}/i",function($str){
            return "?";
        },$text); //将emoji的unicode留下,其他不动,这里的正则比原答案增加了d,因为我发现我很多emoji实际上是\ud开头的,反而暂时没发现有\ue开头。
        return json_decode($text);
    }

以上是关于过滤emoji表情符的主要内容,如果未能解决你的问题,请参考以下文章

js 怎么把emoji表情给过滤掉

python 怎么过滤 emoji 表情符号

python 怎么过滤 emoji 表情符号

求php过滤ios的Emoji表情的方法,如果字符串中包含Emoji表情就删除。

python emoji 表情过滤

Java 解决Emoji表情过滤问题