javascript unicode emoji regular expressions

前端 未结 4 2164
無奈伤痛
無奈伤痛 2020-11-30 09:04

i want to replace all emoji in string with icon now i successfully replaced those {:) :D :P :3 <3 XP .... etc} to icon so if user write :) thi

4条回答
  •  清歌不尽
    2020-11-30 09:51

    You can change to \U characters with below function.

    var emojiToUnicode=function (message){
        var emojiRegexp = /([\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2694-\u2697]|\uD83E[\uDD10-\uDD5D])/g;
        if(!message)
            return;
        try{ 
            var newMessage = message.match(emojiRegexp);
            for(var emoj in newMessage){
                  var emojmessage = newMessage[emoj];
                  var index = message.indexOf(emojmessage);
                  if(index === -1)
                      continue;
                  emojmessage = "\\u" + emojmessage.charCodeAt(0).toString(16) + "\\u" + emojmessage.charCodeAt(1).toString(16);
                  message = message.substr(0, index) + emojmessage + message.substr(index + 2);
                }
            return message;
        }catch(err){
            console.error("error in emojiToUnicode"+err.stack);
        }
     };
    

提交回复
热议问题