输入:
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/