Javascript 如何将字符串中的所有表情符号替换为unicode JS
我对用unicode替换字符串中的表情符号有问题 例如: 我有字符串:Javascript 如何将字符串中的所有表情符号替换为unicode JS,javascript,regex,unicode,emoji,Javascript,Regex,Unicode,Emoji,我对用unicode替换字符串中的表情符号有问题 例如: 我有字符串: const str=“My string您可以做的是,从数组开始。from(): Array.from(“我的字符串你能做的是,从Array.from()开始”: Array.from(“My string您可以使用replace,就像您在函数中做的那样。为现代JavaScript提供一个正则表达式,匹配各种“表情符号”范围。然后在回调中,您可以使用codepoint获取表情符号的代码点值,通过toString(16)将其转
const str=“My string您可以做的是,从数组开始。from()
:
Array.from(“我的字符串你能做的是,从Array.from()开始”
:
Array.from(“My string您可以使用replace
,就像您在函数中做的那样。为现代JavaScript提供一个正则表达式,匹配各种“表情符号”范围。然后在回调中,您可以使用codepoint
获取表情符号的代码点值,通过toString(16)将其转换为十六进制
,并以所需格式返回字符串:
const str=“My string您可以像在函数中那样使用replace
。为匹配各种“表情符号”范围的现代JavaScript提供正则表达式。然后在回调中,您可以使用codePointAt
获取表情符号的代码点值,通过toString(16)将其转换为十六进制
,并以所需格式返回字符串:
const str=“My string如果您的目标是ECMAScript 2018及更高版本,您可以使用
JS演示:
const str=“My string如果您的目标是ECMAScript 2018及更高版本,您可以使用
JS演示:
const str="我的字符串不使用charCodeAt
,它返回代码单位,而不是代码点。使用codepointet
@t.J.Crowder谢谢。不知道这样的东西存在……不使用charCodeAt
,它返回代码单位,而不是代码点。使用codepointet
@t.J.Crowder谢谢。不知道这样的东西存在……这个wi很遗憾,Unicode属性转义目前还没有得到很好的支持。即使是最新的Firefox也无法解决这个问题。不过,很高兴看到iOS Safari和Chrome/Chrome/Brave/ChromiumEdge提供了支持。非Chrome Edge不支持它们(花了一分钟的时间进行测试)。幸运的是,这个问题很快就会解决。:-)为了以防万一,您还可以有趣地检查,该信息对于Edge 79是不正确的,Edge 79确实支持这些信息。我会看看我是否能做公关。总有一天会成功的。:-)遗憾的是,目前Unicode属性转义还没有得到很好的支持。即使是最新的Firefox也无法处理这个问题。很高兴看到iOS Safari和Chrome/Chrome/Brave/ChromiumEdge支持。非Chrome Edge不支持它们(花了一分钟测试)。幸运的是,这个问题很快就会自行解决。:-)为了以防万一,您还可以有趣地检查,该信息对于Edge 79是不正确的,Edge 79确实支持这些信息。我会看看我是否可以做一个公关。如果有人想做任何测试,或者自己创建一个更好的正则表达式,这是一件值得关注的事情。(对于未来可能的观众,不要看这个过时的表情符号12.0版本,谷歌最新版本是什么)如果有人想做任何测试,或者自己创建一个更好的正则表达式,这是一件值得关注的事情。(对于未来可能的观众,不要看这个过时的表情符号12.0版本,谷歌最新版本是什么)
Array.from("My string You can use replace
as you do in your function going the other way. This answer provides a regex for modern JavaScript that matches various "emoji" ranges. Then in the callback you can use codePointAt
to get the value of the code point of the emoji, convert it to hex via toString(16)
, and return a string in your desired format:
const str = "My string If you target ECMAScript 2018 and newer, you may use
/\p{Emoji}/ug