Замена кавычек в Javascript? - PullRequest
8 голосов
/ 28 февраля 2010

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

Надеюсь, в этом есть какой-то смысл, я новичок в этом, поэтому он может и не иметь смысла. Я постараюсь уточнить, если это будет необходимо. Спасибо!

Ответы [ 3 ]

16 голосов
/ 28 февраля 2010

Экранирование их для HTML:

var escapedString = string.replace(/'/g, "'").replace(/"/g, """);

Спасение их для кода JS:

var escapedString = string.replace(/(['"])/g, "\\$1");
10 голосов
/ 28 февраля 2010

Если вы генерируете строки Javascript на сервере, вам нужно будет экранировать кавычки и некоторые другие символы.

\'      Single quotation mark  
\"      Double quotation mark  
\\      Backslash  
\b      Backspace  
\f      Form feed  
\n      New line  
\r      Carriage return  
\t      Horizontal tab  
\ddd    Octal sequence (3 digits: ddd)  
\xdd    Hexadecimal sequence (2 digits: dd)  
\udddd  Unicode sequence (4 hex digits: dddd)   
1 голос
/ 28 февраля 2010

Вам нужно сбежать от них так:

var foo = '\'foo\'';

Итак, если в исходной строке есть одинарные кавычки, замените каждую одинарную кавычку косой чертой и одинарной кавычкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...