#javascript #replace #unicode #v8 #emoji
#javascript #заменить #юникод #v8 #эмодзи #Юникод #версия 8
Вопрос:
Я читал это сообщение в блоге V8 о новом, String.prototype.replaceAll
где они показывают этот пример:
console.log(
'🍏🍏🍋🍋🍊🍊🍓🍓'.replace(/🍏/g, '🥭')
)
Почему заменяются все фрукты, а не только зеленое яблоко?
Комментарии:
1. Я вижу только заменяемое Яблоко.
2. Для меня это тоже всего лишь замена яблок. Какой браузер / ОС вы используете?
3. Смелый 64-битный
v1.11.104
Chromium84.0.4147.105
на Windows 10.4. Странно, я только что установил brave, и он отображается по желанию, не могли бы вы поделиться скриншотом?
5. Я добавил скриншот.
Ответ №1:
Это почти наверняка вопрос о том, какие шрифты вы установили в своей системе.
Когда я впервые увидел этот вопрос, я видел только квадратные коробки, до и после замены. Установка шрифта «Noto Emoji» и перезапуск моего браузера исправили это для меня: теперь я вижу фрукты, в том числе помидор вместо яблока.
JavaScript (и V8) выполняет то, что вы ожидаете; вам просто нужно заставить вашу систему правильно отображать эмодзи для вас.
Комментарии:
1. Что странно, так это то, что я могу видеть (некоторые) эмодзи перед заменой, но ни один из них после, даже те, которые не изменились.