[英]How can i convert from string to emoji in typescript/javascript
您好,我想将打字稿中的字符串中的表情符号转换为HTML中显示的表情符号。
打字稿文件
export class Example {
emoji:any;
function(){
this.emoji = ":joy:"
}
}
在HTML文件中,我希望它像😂(这是我将从打字稿文件中获取的元素emoji表情)是否可能这样以及如何发生。 感谢所有帮助
首先,您需要某种:joy:到相关unicode字符串的映射。
例如::joy:的unicode代码为😂
。
然后,您可以使用它在页面上打印...
这是一个小例子。
var mapping = { ":joy:" : "😂", ":shades:": "😎", ":happy:" : "😀" } var iteration = 0; function mapEmoji(){ setInterval(function(){ if(iteration == Object.keys(mapping).length) iteration = 0; var text = Object.keys(mapping)[iteration]; document.getElementById("emoji").innerHTML = mapping[text]; iteration++; }, 500); } mapEmoji();
<div id="emoji"> </div>
当然,您需要向unicode映射对象中添加更多表情符号,并且可能需要用相应的unicode代码替换占位符(“:joy:”),以便在句子中替换等。
这是一个带有emoji map
和regular expression
的函数,它将在文本中替换它们:
const emojiMap = { joy: "😂", shades: "😎", happy: "😀" } const regExpression = /:([^:]*):/g const text = "I was like :joy: and she was like :happy: and we ware like :shades:" const emojiIt = (re, text) => { while (result = re.exec(text)) { text = text.replace(result[0], emojiMap[result[1]]) } return text } document.getElementById('test').innerHTML = emojiIt(regExpression, text)
<div id="test"></div>
由于我们在:
之间进行匹配,因此我们从regEx中获得了匹配的单词,然后使用它们(不使用:
因为我们进入了索引为[1]的组)以获取适当的html值。
PS。 感谢Adriani6为表情符号提供了方便的html表示形式!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.