JavaScript在字符串中查找Emoji并进行解析 [英] Javascript Find Emoji in String and Parse
本文介绍了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屋!
查看全文