Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将字符串中的所有表情符号替换为unicode JS_Javascript_Regex_Unicode_Emoji - Fatal编程技术网

Javascript 如何将字符串中的所有表情符号替换为unicode JS

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)将其转

我对用unicode替换字符串中的表情符号有问题

例如:

我有字符串:
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