Как конвертировать этих персонажей? - PullRequest
3 голосов
/ 29 марта 2019

Я создаю приложение в React, которое получает определенную html-страницу и преобразуется в страницу в React, но когда помещает некоторую строку в <Text>, эти символы не преобразуются:

enter image description here

Представление &#8212; равно .

Как называются эти символы?Есть ли способ в React преобразовать эти символы в соответствующий им текст?

1 Ответ

2 голосов
/ 29 марта 2019

Эти символы называются Объекты символов HTML Многие математические, Технические символы и символы валюты отсутствуют на обычной клавиатуре.

Если имя сущности не существует, вы можете использовать номер сущности, десятичную или шестнадцатеричная ссылка.

Быстрый обходной путь для одной известной HTML-сущности:

    <Text>
      {yourText.replace(/&#8212;/gi, '-')}
    </Text>

Вы можете использовать этот модуль npm для декодирования текста перед рендерингом:

Пример для нескольких html-сущностей

const re = /&[^\s]*;/gi;
const allHtmlEntities = [];
while ((match = re.exec(youtText)) != null) {
  const htmlEntity = yourText.substring(match.index, 7);
  if (allHtmlEntities.indexOf(htmlEntity) === -1) {
    allHtmlEntities.push(htmlEntity);
  }
}

const entities = new Entities();

for (let i = 0; i < allHtmlEntities.length; i++) {
  const decodedValue = entities.decode(allHtmlEntities[i]);
  yourText = yourText.replace(new RegExp(allHtmlEntities[i], 'g'), decodedValue);
}
...