gpt4 book ai didi

javascript - 安全地拆分表情符号

转载 作者:可可西里 更新时间:2023-11-01 01:25:07 26 4
gpt4 key购买 nike

我正在尝试将字符串拆分为单个单词/字符,但在处理表情符号时遇到了麻烦。

首先,我不能简单地使用空字符拆分字符串,因为表情符号的长度通常 >= 2。

"😎".split("")
["�", "�"]

我找到了一个 emoji regex这大部分都有效,但现在我看到了一些奇怪的肉色 block 。在某些情况下,我什至看到他们出现在推特上。

enter image description here

这里有一支笔可以说明肉 block 的问题 http://codepen.io/positlabs/pen/QyEOEG?editors=011

enter image description here

更新------------

尝试使用 spliddit,我仍然发现肤色字符存在问题。有什么方法可以将它们粘合在一起吗?

http://codepen.io/positlabs/pen/rxLqwL?editors=001

最佳答案

JavaScript 的字符串是 UTF-16,因此您的表情符号在内部表示为两个代码单元:

> "\ud83d\ude0e" === "😎"
true

String.prototype.split 函数并不关心 surrogate pairs在 UTF-16 中,因此它会天真地颠倒各个代码单元并破坏您的表情符号,因为 JavaScript 不提供任何方式来处理字符串中的各个字符。

没有简单的方法来处理它。你需要一个像 spliddit 这样的图书馆正确处理各个代码单元。

我不是 100% 熟悉术语,所以请根据需要编辑我的答案。

关于javascript - 安全地拆分表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34421887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com