Удалить последнюю символьную строку, если строка содержит смайлики - PullRequest
0 голосов
/ 19 декабря 2018

Я использую React Native (чат), в этом приложении у меня есть один смайлик, но когда пользователи нажимают виртуальную кнопку возврата, смайлики удаляют только свой последний байт Юникода.

Как я могу определить, является ли последний 'чат' (набор юникодов) автономным юникодом emoji?

Код для его разделения:

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}.

Я не знаю, чтодумать, ребята: /

1 Ответ

0 голосов
/ 19 декабря 2018

Попробуйте со срезом:

inputValue.slice(0, -1);

ОБНОВЛЕНИЕ:

Этот пакет может вам помочь: Руны

примервашей потребности:

const runes = require('runes')

function backspace(text){

       return runes(text).slice(0, -1);

}

//the call : 

backspace('Made with ♥') // Made with
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...