首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在typescript/javascript中将字符串转换为emoji

如何在typescript/javascript中将字符串转换为emoji
EN

Stack Overflow用户
提问于 2018-08-12 05:35:15
回答 2查看 5.6K关注 0票数 4

你好,我想转换表情从字符串在打字,以显示在html表情。

Typescript文件

代码语言:javascript
复制
export class Example {
    emoji:any;
    function(){
       this.emoji = ":joy:"
    }
  }

超文本标记语言文件中,我希望它是这样的(这是我将从typescript文件中获得的元素表情)是这样的可能和方式。感谢所有的帮助。

EN

回答 2

Stack Overflow用户

发布于 2018-08-12 05:49:56

首先,您需要将:joy:映射到相关的unicode字符串。

例如:joy:的unicode代码应该是&#x1f602

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

这里有一个小示例。

代码语言:javascript
复制
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();
代码语言:javascript
复制
<div id="emoji">

</div>

当然,您可能希望向unicode映射对象添加更多的表情符号,并且您可能希望使用相应的unicode代码替换占位符(":joy:"),等等……

票数 3
EN

Stack Overflow用户

发布于 2018-08-12 07:54:51

下面是一个使用emoji mapregular expression在文本中替换它们的函数:

代码语言:javascript
复制
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)
代码语言:javascript
复制
<div id="test"></div>

因为我们在:之间进行匹配,所以我们从regEx中获取匹配的单词,然后使用这些单词(没有:,因为我们进入索引为1的组)来获得适当的html值。

PS。感谢Adriani6为表情符号提供了方便的html表示!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51803928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档