Как мне изменить 'в строке на% 27 с помощью JavaScript? - PullRequest
2 голосов
/ 23 июня 2011

У меня есть этот код:

var data = "I'm trying to send this with AJAX properly.";
data = encodeURIComponent(data);
data.replace("'", "%27");
data.replace(/'/, "%27");
alert(data); //Still not changed here...

Я хочу отправить это с AJAX в базу данных.Но «заставляет его вообще не отправлять.encodeURIComponent не меняет 'на свой код% 27, также как и data.replace.

Что я здесь не так делаю?

Ответы [ 3 ]

6 голосов
/ 23 июня 2011

Вы не переназначаете data.

data = data.replace("'", "%27");

replace() возвращает измененную строку, она не изменяет строку вызывающего объекта напрямую.

4 голосов
/ 23 июня 2011

Используйте метод escape, он будет URL-кодировать строку. Обратите внимание, что метод string.replace заменяет только первое вхождение строки при использовании строки в качестве совпадения. Для замены всех экземпляров необходимо использовать регулярное выражение.

var foo = escape("'");
0 голосов
/ 23 июня 2011

String.prototype.replace возвращает измененную строку, но не изменяет оригинал.Вы должны присвоить возвращаемое значение:

var newString = data.replace( "'", '%27' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...