Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2010, 10:13
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

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

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

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

т.к. вместо "х" нужно написать спецсимвол "умножить крестиком". Как можно осуществить эту замену?
А нет ли функции, которая заменяет все спецсимволы на HTML-эквиваленты? Было бы очень удобно :-)
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2010, 10:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А что мешает
Сообщение от балерун
вместо "х" ... написать спецсимвол "умножить крестиком"
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2010, 10:26
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

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

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


Я преобразую весь текст с помощью escape, потом ищу этот проклятый знак умножения (он имеет вид %D7), и заменяю на × (которая имеет вид %26times%3B), а потом преобразую обратно с помощью unescape
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2010, 10:27
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

Сообщение от Kolyaj
А что мешает
ну, а как я этот символ напишу в коде?
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2010, 10:28
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от балерун
он имеет вид %D7
content = content.replace('\xD7', '×')
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2010, 10:33
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

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

Опа! Спасибо, чувак, ты мой спаситель! A функции нет, которая сама все их менять будет? Хотя вряд ли... чудес не бывает. По крайне мере в JavaScript :-)
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2010, 10:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Напиши.
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2010, 11:21
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

function htmlEntities(string){
    var node = document.createElement('div');
    node.innerText = node.textContent = string;
    return node.innerHTML
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменные в HTML ibcmsm Общие вопросы Javascript 7 27.09.2011 14:35
Замена html на JvaScript sedoi Общие вопросы Javascript 7 04.05.2011 19:47
Html метки + div + JS boltayka Events/DOM/Window 1 07.09.2009 17:21
передача данных из xml в html yupa AJAX и COMET 40 30.07.2009 10:11
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42