2010-02-28 2 views
7

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

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

+0

Какой язык вы пишете веб-приложение в? –

+0

@James Пожалуйста, добавьте свой пример кода и сообщение об ошибке на вопрос. –

ответ

10

Если вы создаете строки 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

Итак, если строка только что сгенерирована, и я не могу изменить то, что сгенерировано, как я могу избежать всех кавычек в этой строке, я думаю, это мой вопрос? Благодаря! –

1

Вы должны избавиться от них, как так:

var foo = '\'foo\''; 

Таким образом, если исходная строка имеет одинарные кавычки, замените каждую одинарную кавычку с косой чертой и одной цитатой.

15

Спасаясь их HTML:

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

Спасаясь их JS код:

var escapedString = string.replace(/(['"])/g, "\\$1");