2010-02-28 95 views
7

對於我正在創建的Web應用程序,我將要獲取包含引號的文本字符串。因爲我然後將成爲document.writing字符串,他們需要更改爲撇號或轉義。我該怎麼做,因爲當我嘗試它似乎沒有工作,特別是我認爲,因爲字符串的引號停止腳本的其餘部分工作。替換Javascript中的引號?

希望這有一定道理,我很新的這所以這就是爲什麼它可能沒有什麼意義。我會嘗試澄清是否需要。謝謝!

+0

什麼語言寫你的web應用程序嗎? – 2010-02-28 15:50:37

+0

@James請將您的示例代碼和錯誤消息添加到問題中。 – 2010-02-28 16:20:25

回答

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

因此,如果字符串剛剛生成並且無法更改生成的內容,那麼我該如何轉義該字符串中的所有引號?我猜是我的問題?謝謝! – 2010-02-28 15:57:55

1

你需要逃避他們,像這樣:

var foo = '\'foo\''; 

因此,如果源字符串中有單引號,以斜線和一個單引號替換每個單引號。

15

逃離他們的HTML:

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

逃離他們的JS代碼:

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