JavaScript在字符串中查找Emoji并进行解析 [英] Javascript Find Emoji in String and Parse

查看:0
本文介绍了JavaScript在字符串中查找Emoji并进行解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

经过大量的研究,我发现了如何使用Twemoji库实时解析emoji表情。

现在,我需要弄清楚如何识别某些文本中是否有emoji,获取该emoji的位置并执行解析函数。

某些示例文本可以是

It is a great day 😀.

需要在整个字符串中查找😀,并使用以下函数获取其十六进制代码、返回代理项对并使用Twemoji库进行分析。

function entityForSymbolInContainer(selector) {
    var code = data.message.body.codePointAt(0);
    var codeHex = code.toString(16);
    while (codeHex.length < 4) {
        codeHex = "0" + codeHex;
    }

    return codeHex;
}

// Get emoji hex code
    var emoji = entityForSymbolInContainer(data.message.body);
// For given an HEX codepoint, returns UTF16 surrogate pairs
    var emoji = twemoji.convert.fromCodePoint(emoji);
// Given a generic string, it will replace all emoji with an <img> tag
    var emoji = twemoji.parse(emoji);

我正在使用以下检查来查看文本中是否有表情符号。问题是,对于一张简单的咧嘴笑的脸(😀),它不会让我警觉。然而,如果我输入"衬衫和领带"(👔),它会提醒我这一点。

var string = "It is a great day 😀.";
var emojiRegex = /([uE000-uF8FF]|uD83C[uDF00-uDFFF]|uD83D[uDC00-uDDFF])/g;

if (string.match(emojiRegex)) {
    alert("emoji found");
}

请帮助解决regex不拿起emoji表情的问题。在那之后,我应该能够在字符串中找到它。

谢谢!

推荐答案

这篇文章给出了一个非常全面的正则表达式来匹配表情符号,并给出了非常好的解释。他的regex是根据lodash图书馆出版的那本书编写的。

(?:[u2700-u27bf]|(?:ud83c[udde6-uddff]){2}|[ud800-udbff][udc00-udfff]|[u0023-u0039]ufe0f?u20e3|u3299|u3297|u303d|u3030|u24c2|ud83c[udd70-udd71]|ud83c[udd7e-udd7f]|ud83cudd8e|ud83c[udd91-udd9a]|ud83c[udde6-uddff]|[ud83c[ude01-ude02]|ud83cude1a|ud83cude2f|[ud83c[ude32-ude3a]|[ud83c[ude50-ude51]|u203c|u2049|[u25aa-u25ab]|u25b6|u25c0|[u25fb-u25fe]|u00a9|u00ae|u2122|u2139|ud83cudc04|[u2600-u26FF]|u2b05|u2b06|u2b07|u2b1b|u2b1c|u2b50|u2b55|u231a|u231b|u2328|u23cf|[u23e9-u23f3]|[u23f8-u23fa]|ud83cudccf|u2934|u2935|[u2190-u21ff])

https://medium.com/@thekevinscott/emojis-in-javascript-f693d0eb79fb

这篇关于JavaScript在字符串中查找Emoji并进行解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆