Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена спецсимололов на HTML-эквиваленты (https://javascript.ru/forum/misc/7036-zamena-specsimololov-na-html-ehkvivalenty.html)

балерун 12.01.2010 10:13

Замена спецсимололов на HTML-эквиваленты
 
Есть строка (назовем ее str), в которой содержатся спецсимволы (в частности знак умножить в виде крестика), его HTML-эквивалент ×
Как мне в строке str заменить все знаки умножить на ×

Ведь я не смогу использовать

edited_str = str.replace(new RegExp("x", 'g'), '×');

т.к. вместо "х" нужно написать спецсимвол "умножить крестиком". Как можно осуществить эту замену?
А нет ли функции, которая заменяет все спецсимволы на HTML-эквиваленты? Было бы очень удобно :-)

Kolyaj 12.01.2010 10:23

А что мешает
Цитата:

Сообщение от балерун
вместо "х" ... написать спецсимвол "умножить крестиком"


балерун 12.01.2010 10:26

Вот топорное решение, страшно на него смотреть, и я понимаю, что это преступление в программирование.

var esc_content = escape(content);
content = unescape(esc_content.replace(new RegExp("%D7", 'g'), '%26times%3B'));


Я преобразую весь текст с помощью escape, потом ищу этот проклятый знак умножения (он имеет вид %D7), и заменяю на × (которая имеет вид %26times%3B), а потом преобразую обратно с помощью unescape

балерун 12.01.2010 10:27

Цитата:

Сообщение от Kolyaj
А что мешает

ну, а как я этот символ напишу в коде?

Kolyaj 12.01.2010 10:28

Цитата:

Сообщение от балерун
он имеет вид %D7

content = content.replace('\xD7', '×')

балерун 12.01.2010 10:33

Цитата:

Сообщение от Kolyaj
content = content.replace('\xD7', '×')


Опа! Спасибо, чувак, ты мой спаситель! A функции нет, которая сама все их менять будет? Хотя вряд ли... чудес не бывает. По крайне мере в JavaScript :-)

Kolyaj 12.01.2010 10:36

Напиши. :)

B@rmaley.e><e 12.01.2010 11:21

function htmlEntities(string){
    var node = document.createElement('div');
    node.innerText = node.textContent = string;
    return node.innerHTML
}


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