Изменение символов Unicode (") на эквивалентный символ html (") - PullRequest
0 голосов
/ 10 апреля 2020

Я работаю над проектом в реакции (JavaScript, html), где мы вызываем API поиска Google, который возвращает заголовок с содержимым результата поиска. в настоящее время, когда мы получаем результаты обратно, они находятся в Юникоде, например

this isn't what I want

, что я хотел бы, чтобы оно было

 this isn't what i want

Я бы сделал string.replace, однако есть несколько разных кодов, и я не могу объяснить их все без того, чтобы быть длинным. какие-либо предложения о том, как я могу изменить это?

1 Ответ

3 голосов
/ 10 апреля 2020

Вы можете просто создать элемент, установить его содержимое HTML в качестве закодированной строки, а затем вернуть его текстовое содержимое.

const encodedResults = 'this isn't what I want';
const div = document.createElement('div');
div.innerHTML = encodedResults;
const decodedResults = div.textContent; // this isn't what i want

Редактировать: @ Mr Lister упомянул, что вышеупомянутый метод работает, только когда входные данные не содержат фактических тегов html.

Для входных данных, содержащих теги html, вы можете создать текстовое поле, установить его содержание, а затем вернуть его значение.

const encodedResults = 'this <i>isn&#39;t</i> what I want';
const textarea = document.createElement('textarea');
textarea.innerHTML = encodedResults;
const decodedResults = textarea.value; // this <i>isn't</i> what i want
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...