当字符串包含表情符号时删除最后一个字符字符串
Remove last char string when string contains emojis
我正在使用 React Native(聊天),在这个应用程序中我有一个表情符号选择器,但是当用户按下虚拟退格按钮时,表情符号只会删除他们的最后一个 unicode 字节。
我如何检测最后一个 'chat'(unicode 集)是否是独立的表情符号 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}
之类的都可以。
我不知道大家怎么想:/
尝试切片:
inputValue.slice(0, -1);
更新:
这个包可能对你有帮助:runes
您的需求示例:
const runes = require('runes')
function backspace(text){
return runes(text).slice(0, -1);
}
//the call :
backspace('Made with ♥') // Made with
我正在使用 React Native(聊天),在这个应用程序中我有一个表情符号选择器,但是当用户按下虚拟退格按钮时,表情符号只会删除他们的最后一个 unicode 字节。
我如何检测最后一个 'chat'(unicode 集)是否是独立的表情符号 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}
之类的都可以。
我不知道大家怎么想:/
尝试切片:
inputValue.slice(0, -1);
更新:
这个包可能对你有帮助:runes
您的需求示例:
const runes = require('runes')
function backspace(text){
return runes(text).slice(0, -1);
}
//the call :
backspace('Made with ♥') // Made with