zoukankan      html  css  js  c++  java
  • nodejs,javascript过滤emoj表情

    1 前言

    由于带emoj表情的昵称无法存储在mysql character_set_server= utf8模式下,按照参考文章[1],改成utf8mb4,无效(可能使用方法不对)。

    总体思路是,把昵称过滤emoj表情,得到过滤后的昵称。

    2 代码

    function filterNicknameWithEmoj(nickname){
    
        var regStr = /[uD83C|uD83D|uD83E][uDC00-uDFFF][u200D|uFE0F]|[uD83C|uD83D|uD83E][uDC00-uDFFF]|[0-9|*|#]uFE0Fu20E3|[0-9|#]u20E3|[u203C-u3299]uFE0Fu200D|[u203C-u3299]uFE0F|[u2122-u2B55]|u303D|[A9|AE]u3030|uA9|uAE|u3030/ig;
    
        var nickname_filter="";
    
        //regStr.test(nickname)会一次成功一次失败,待排查是否和regStr写法有关
        if(regStr.test(nickname)){
            nickname_filter = nickname.replace(regStr,"");
            nickname_filter = removeBlank(nickname_filter);
            return nickname_filter;
        }
    
        return nickname;
    }
    
    function removeBlank(str){
        str = str.trim();
        var ret = "";
        for(var i = 0; i < str.length; i++){
            if(str[i] != ' '){
                ret+=str[i];
            }
        }
        return ret;
    }
    

    正则表达式还有其它表示方法,这个正则表达式可以过滤ios10+全部表情包[2]

    3 参考

    [1] 通过node.js保存emoji到mysql

    [2] https://www.cnblogs.com/zt-blog/p/6773854.html

    [3] https://segmentfault.com/q/1010000005840528

    [4] https://segmentfault.com/q/1010000011875872/a-1020000011876055

    [5] 微信公众平台昵称乱码emoji表情过滤

  • 相关阅读:
    个人报告04
    个人报告03
    构建之法阅读笔记07
    个人报告02
    第二次冲刺个人报告01
    第二阶段个人总结5
    第十三周学习进度情况
    第二阶段个人总结4(5.28)
    第二阶段个人总结3(5.27)
    课堂作业之找小水王
  • 原文地址:https://www.cnblogs.com/fanbi/p/9250803.html
Copyright © 2011-2022 走看看