【问题标题】:How can i convert from string to emoji in typescript/javascript如何在 typescript/javascript 中从字符串转换为表情符号
【发布时间】:2019-01-19 02:20:41
【问题描述】:

您好,我想将打字稿中的字符串中的表情符号转换为在 html 中显示的表情符号。

打字稿文件

export class Example {
    emoji:any;
    function(){
       this.emoji = ":joy:"
    }
  }

HTML 文件中我希望它像 ??? (这是我将从打字稿文件中获得的元素表情符号) 这样的事情是否可能以及如何。 感谢所有帮助

【问题讨论】:

  • 是的,但它将是动态网站,所以我不会像我放在这里的那样放表情符号。我在后端有它们的字符串,我需要像我在前端提到的那样显示它们。我不知道是否有可能@DanielBeck

标签: javascript jquery typescript


【解决方案1】:

首先,您需要某种 :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:") 以在句子中替换等等...

【讨论】:

    【解决方案2】:

    这是一个带有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)
    &lt;div id="test"&gt;&lt;/div&gt;

    由于我们在: 之间进行匹配,我们从正则表达式中获得匹配的单词,然后我们使用这些(没有:,因为我们利用索引[1] 进入组)来获取适当的html 值。

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

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2016-09-27
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多