2013-06-27 4 views
1

у меня есть:Как кодировать символ в Javascript?

function showMessage(message) { 
    alert(message); 
} 

Но когда приходит сообщение динамически с сервера, как (например): «мужские» это не работает.

Я пробовал:

function myEncode(message) { 
    return message.replace("'", "\'"); 
} 

showMessage(myEncode(message)); 

Не похоже на работу. Это простой пример, фактический код более сложный, но по существу это проблема.

+1

Хорошо читать: http://en.wikipedia.org/wiki/JSON – elclanrs

+3

Я полагаю, ваша проблема в том, что генерируемые сервером ваши результаты кода в чем-то вроде 'ShowMessage (myEncode ('Мужская'))'? Таким образом, ваш JavaScript уже был сломан в этот момент - поэтому попытка заменить что-то _in_ JavaScript, если у вас уже есть синтаксическая ошибка JS, конечно, бессмысленна (D'oh!). Выполняйте экранирование в своем серверном коде _before_, вы выводите это значение как строковое значение JS. – CBroe

+0

Да, на самом деле это происходит с сервера. – Mythul

ответ

1

Вы должны указать параметр g для глобальной замены (не только первого совпадения).

Вы также должны слеш:

function myEncode(message) { 
    return message.replace(/'/g, "\\'"); 
} 
+0

это просто заменяет '' '' '' вам нужно написать '' \\ '"' –

+0

@ t.niese Спасибо, исправлено. –