Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   экранирование &LT (https://javascript.ru/forum/misc/80428-ehkranirovanie-lt.html)

wolfio 03.06.2020 16:08

экранирование &LT
 
Здравствуйте.

не являюсь js программистом, вопрос нубский
как заэкранировать в js символы "&lt", чтобы они выглядели как "&lt", а не как "<"?

laimas 03.06.2020 16:19

Это не экранированием называется, а заменой на html сущности. Нужно заменить & на таковую, которая равна &amp; будет выводиться как &lt.

wolfio 03.06.2020 16:25

блин как просто) спасибо)

laimas 03.06.2020 16:52

Только &lt никак не отобразиться как <, должно быть &lt;, html сущности заканчиваются точкой с запятой.

Malleys 04.06.2020 02:46

Цитата:

Сообщение от laimas
Только &lt никак не отобразиться как <, должно быть &lt;, html сущности заканчиваются точкой с запятой.

Какое противоречие! Спецификация HTML 4.01 в разделе «Ссылки на сущности» заявляет: «В SGML можно исключить конечный «;» после ссылки на сущность в некоторых случаях (например, при переводе строки или непосредственно перед тегом)»
&lt


Однако всегда считалось хорошей практикой завершать ссылки на сущности точкой с запятой. XML, а следовательно и XHTML предполагает их формально обязательными.

Хотя спецификация HTML5 требует точку с запятой во всех случаях, однако в большинстве браузеров сущности без «;» могут использоваться в бо́льших случаях, чем описано в спецификации HTML 4.01. Код далее выводит «boo£bar»
boo&poundbar

laimas 04.06.2020 07:16

Так обязательно или нет? Я настаиваю на обязательном и только по тому, что, например, htmlspecialchars (подобные ей, а также конверторы) обязательно ее поместит. Если в дальнейшем будут преобразования с предположением, что ее нет, то результат будет иной, чем ожидается.

Malleys 04.06.2020 09:29

Цитата:

Сообщение от laimas
Так обязательно или нет?

Читаем заново — «спецификация HTML5 требует точку с запятой во всех случаях».

Мой же ответ касался вашего утверждения «только &lt никак не отобразиться как <», которое совершенно неверно.

laimas 04.06.2020 09:57

Цитата:

Сообщение от Malleys
касался вашего утверждения «только &lt никак не отобразиться как <»

Может я и запамятовал что-то, а древних браузеров бывших у меня нет, но корректного отображения сущностей таким образом ранее получить было нельзя. Вполне возможно, что и на нынешних платформах не все это будут делать.


Часовой пояс GMT +3, время: 14:59.