【发布时间】:2021-01-16 01:41:17
【问题描述】:
输入:
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 中的所有答案,但没有一个有效。
有没有办法得到想要的输出?
【问题讨论】:
-
我看不到第二种解决方案的问题。我错过了什么?
-
所以这些表情符号实际上是某种组合表情符号,非常有趣。首先,你有一个女人脸表情符号,它本身由你的两个
�字符表示,然后有一个额外的连接字符,即 charcode 8205,然后还有另外两个 - 代表“红头发”,还有那些5 个字加起来表示“红头发的女人脸” -
我认为要正确反转带有组合表情符号的字符串会非常复杂。您必须检查每个表情符号是否后跟 charcode 8205,如果是,则必须将其与前一个表情符号结合,而不是将其视为自己的字符。相当复杂...
-
Javascript 让我很困惑。这是低级和高级语言概念的最奇怪的混合。它的级别在于它完全抽象了内存(没有指针,手动内存管理),但级别太低以至于将字符串视为哑代码点而不是扩展的字形簇。这真的很令人困惑,它让我不知道在使用这个东西时会发生什么。
-
@Alexander-ReinstateMonica 是否有任何语言默认确实通过字形拆分进行拆分? JS 只是提供了以 UTF-16 编码的标准字符串。
标签: javascript string emoji