javascript - 如何反转包含复杂表情符号的字符串?

标签 javascript string emoji

输入:

Hello world👩‍🦰👩‍👩‍👦‍👦
期望的输出:
👩‍👩‍👦‍👦👩‍🦰dlrow olleH
我尝试了几种方法,但都没有给我正确的答案。
这悲惨地失败了:

const text = 'Hello world👩‍🦰👩‍👩‍👦‍👦';

const reversed = text.split('').reverse().join('');

console.log(reversed);

这有点工作,但它打破了👩‍👩‍👦‍👦分成 4 种不同的表情符号:

const text = 'Hello world👩‍🦰👩‍👩‍👦‍👦';

const reversed = [...text].reverse().join('');

console.log(reversed);

我还尝试了 this question 中的所有答案但它们都不起作用。
有没有办法获得所需的输出?

最佳答案

如果可以,请使用 _.split() lodash提供的功能.来自 version 4.0以后,_.split()能够拆分 unicode 表情符号。
使用原生 .reverse().join('')反转“字符”应该适用于包含零宽度连接符的表情符号

function reverse(txt) { return _.split(txt, '').reverse().join(''); }

const text = 'Hello world👩‍🦰👩‍👩‍👦‍👦';
console.log(reverse(text));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js" integrity="sha512-90vH1Z83AJY9DmlWa8WkjkV79yfS2n2Oxhsi2dZbIv0nC4E6m5AbH8Nh156kkM7JePmqD6tcZsfad1ueoaovww==" crossorigin="anonymous"></script>

关于javascript - 如何反转包含复杂表情符号的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64136641/

相关文章:

javascript - 如何编写Javascript代码为任意字符串的输入创建小于或等于20字节的哈希字符串?

java - 将字符串转换为 JSON 并获取值

HTML 字符表情符号不呈现

javascript - 如何检测 Snowflake VARCHAR 中的表情符号?

javascript - 使用 Express JS .all() 方法 : detect which VERB was actually used

javascript - Jquery datepicker addclass() 不工作

c++ - 字符串中的字符数

c++ - C/C++ 字符串转移到特定元素 - 最少的步骤

javascript - C# 中的匹配表情符号

javascript - (JS) 显示特定字符​​串中所有可能的字符组合,每个字符组合的输出都有一个预定的最大长度