繁体   English   中英

如何在TypeScript / JavaScript中将字符串从字符串转换为表情符号

[英]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代码为&#x1f602

然后,您可以使用它在页面上打印...

这是一个小例子。

 var mapping = { ":joy:" : "&#x1f602", ":shades:": "&#x1f60e", ":happy:" : "&#x1f600" } 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 mapregular expression的函数,它将在文本中替换它们:

 const emojiMap = { joy: "&#x1f602", shades: "&#x1f60e", happy: "&#x1f600" } 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM