当string包含emojis时删除最后一个char字符串

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (43)

我正在使用React Native(聊天),在这个应用程序中我有一个表情符号选择器但是当用户按下虚拟退格按钮时emojis只删除它们的最后一个unicode字节。

如何检测上次'聊天'(unicodes集)是否是独立的表情符号unicode?

拆分代码:

inputValue.substring(0, inputValue.length - 1)

我还尝试使用Array.from(),然后使用slice(0,-1)并在我控制台登录时出现所有案例的正确解决方案。但!当我将SAME变量设置为TextInput时出现:321331231221。

一些例子:

"Hello😁".length
7

"Hello😁".slice(0,-1)
'Hello�'

Array.from("Hello😁")
[ 'H', 'e', 'l', 'l', 'o', '😁' ]

Array.from("Hello😁").slice(0,-1)
[ 'H', 'e', 'l', 'l', 'o' ]

Array.from("Hello😁").slice(0,-1).join('')
'Hello'

但是,如果我在我的React Native TextInput组件中设置了最后一个解决方案,我会看到类似这样的内容:312412412411(可能全部为十六进制)。如果值没有表情符号,我也会看到相同的结果。

当我用表情符号选择器设置表情符号时,类似${inputValue}${newEmoji}的东西都可以解决。

我不知道该怎么办了,求助

提问于
用户回答回答于

扫码关注云+社区

领取腾讯云代金券