2015-06-16 1 views
2

Хорошо, поэтому мне нужно заменить все <, & и> плюс все символы без ascii с их контрагентами html-entity. Я пробовал Underscore.string.escapeHTML, но это, казалось, не касалось символов не-ascii.Escape html & non-ascii chars с javascript

Например мне это нужно:

<div>föö bär</div> 

превращается в это:

&lt;div&gt;f&ouml;&ouml; b&auml;r&lt;/div&gt; 

Очевидно AUML и ouml недостаточно. Мне нужна действительная строка ascii, независимо от того, какие кнопки пользователь нажимает, или на небесах, даже пишет с помощью какой-нибудь moonspeak-клавиатуры.

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects/escape? – Tushar

+0

Fwiw, у меня есть undererscore + jquery, загруженный по умолчанию, поэтому любые хаки с ними будут лучше, чем загрузка внешних библиотек. – Seppo420

+0

1), что делает url escape thingy. Хотя я мог бы просто работать с этим, html-объекты являются очень предпочтительными – Seppo420

ответ

2

Я нашел то, что вы ищете here

Для ваших нужд, вы должны использовать HTMLEncode функцию.

Они определяют ряд других полезных функций внутри объекта:

HTML2Numerical: Преобразует HTML сущности в числовые эквиваленты.

NumericalToHTML: Преобразует числовые объекты в их эквиваленты HTML.

numEncode: Числовое кодирование символов Unicode.

htmlDecode: Декодирует текст в формате HTML в исходное состояние.

htmlEncode: кодирует HTML как для числовых, так и для HTML-объектов. Это определяется свойством EncodeType.

XSSEncode: Кодирует основные символы, используемые при атаках XSS, для искажения HTML.

correctEncoding: Исправление любых амперсандов с двойной кодировкой.

stripUnicode: Удаляет все символы Юникода.

hasEncoded: Возвращает true, если строка содержит html-кодированные объекты внутри него.

Источник: www.strictly-software.com

Остерегайтесь лицензионного соглашения - GPL, The MIT License (MIT)

+0

не знаю, почему это было приостановлено, работает как шарм – Seppo420

+0

@ user1185421 Возможно, потому что это был ответ только для ссылок. Я исправил это :) – gyosifov