输入:

Hello world?‍??‍?‍?‍?

期望输出:

?‍?‍?‍??‍?dlrow olleH

我try 了几种方法,但都没有给出正确的答案.

结果惨败:

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);

我也try 了this question个答案中的每一个,但都不管用.

有没有办法获得所需的输出?

推荐答案

如果可以,请使用lodash提供的_.split()功能.从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相关问答推荐

为什么这个自定义组件会被放置在TR之外?

警告!合同执行期间遇到错误[执行已恢复](Base Layer 2)

在页面上滚动 timeshift 动垂直滚动条

我开始使用/url?q=使用Cheerio

被CSS优先级所迷惑

将自定义排序应用于角形数字数组

分层树视图

编辑文本无响应.onClick(扩展脚本)

在forEach循环中获取目标而不是父对象的属性

闭包是将值复制到内存的另一个位置吗?

如何将数据块添加到d3力有向图中?

在使用位板时,如何在Java脚本中判断Connect 4板中中柱的对称性?

为什么这个.add.group({})在教程中运行得很好,但在我的游戏中就不行了?

如何在 Select 文本时停止Click事件?

是否可以将Select()和Sample()与Mongoose结合使用?

为什么延迟在我的laravel项目中不起作用?

对具有相似属性的对象数组进行分组,并使用串连的值获得结果

在不扭曲纹理的情况下在顶点着色器中旋转UV

无法检索与Puppeteer的蒸汽游戏的Bundle 包价格

select 2-删除js插入的项目将其保留为选项