Как преобразовать HTML-сущности в специальные символы, используя простой JavaScript

0

С помощью bucabay мы можем кодировать специальные символы в html-узлы ниже ссылки для ссылки: (Как преобразовать символы в объекты HTML с использованием обычного JavaScript). Теперь мы хотим их декодировать, т.е. снова преобразовать объекты HTML в специальные символы.

С уважением, А.А.

Теги:
decode
entities

3 ответа

0

Для надежного решения, которое позволяет избежать проблем в других ответах, используйте библиотеку he. Из README:

он (для "HTML-сущностей") является надежным кодировщиком/декодером объектов HTML, написанным на JavaScript. Он поддерживает все стандартизированные именованные символьные ссылки в соответствии с HTML, обрабатывает неоднозначные амперсанды и другие граничные случаи, как и браузер, имеет обширный набор тестов и, вопреки многим другим решениям JavaScript, отлично справляется с астральными символами Unicode. Доступна онлайн-демонстрация.

Вот как вы его используете:

var html = 'Übergroße Äpfel mit Würmern';
var decoded = he.decode(html);
// → 'decoded' is now 'Übergroße Äpfel mit Würmern'

См. Этот связанный ответ. И это тоже.

0

Вы можете сделать это, если браузер проанализирует текст как HTML, например

var text = "Übergroße Äpfel mit Würmern";
var span = document.createElement('span');
span.innerHTML = text;
alert(span.innerHTML); // contains the characters as decoded
  • 0
    Это создает угрозу безопасности в виде уязвимости межсайтового скриптинга: если входные данные ( text ) содержат что-то вроде <svg onload=alert(1)> , то alert(1) будет выполнено. Это решение также зависит от поддержки браузером ссылок на символы, которые даже в современных браузерах не идеальны для всех: mathias.html5.org/tests/html. Это также не будет работать в средах без браузера.
  • 0
    @MathiasBynens, в этом вопросе нет ничего, что предполагало бы, что данные поступают из внешнего источника. Скорее наоборот: данные описываются как созданные путем кодирования некоторых символов как объектов.
0

Вы можете сделать это, используя базовый javascript или используя jQuery.

newText = "Übergroße Äpfel mit Würmern";

var my_unescaped_text = jQuery (''). html (newText).text();

  • 0
    необходимо преобразовать эти HTML-сущности в специальные символы.
  • 0
    Это создает угрозу безопасности в виде уязвимости межсайтового скриптинга: если вход ( newText ) содержит что-то вроде <svg onload=alert(1)> , это alert(1) будет выполнено. Это решение также зависит от поддержки браузером ссылок на символы, которые даже в современных браузерах не идеальны для всех: mathias.html5.org/tests/html. Это также не будет работать в средах без браузера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню