2016-02-12 105 views
6

需要做些什么才能使用反斜杠来转义字符串中的所有引号,以便它们不会导致任何Javascript错误。转义单引号和双引号 - jQuery或Javascript

一些像这样的事情 -

This is 'just a" test string. 

结果应该是 -

This is \'just a\" test string. 
+0

我不明白:你似乎在问如何修改一个已经存在的字符串,事实上你已经接受了一个答案,它对JS变量中的值做了.replace()。但为什么在这一点上逃避必要?你说*“这样它们不会导致任何Javascript错误”*,但是它们会导致什么错误?转义引号的概念通常仅与字符串文字相关。 – nnnnnn

回答

7

单引号

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

对于双引号

str = str.replace(/(["])/g, "\\$1"); 

对单引号和双引号

str = str.replace(/(['"])/g, "\\$1"); 
+1

可爱的...它的工作原理:-)非常感谢...你真了不起 –

2

我不知道你将如何让两者合并为一个字符串:),但是试试这个

var str = "This is 'just a test string."; 
str = str.split("'").join("\\'"); \\outputs "This is \'just a test string." 

同样

var str = 'This is "just a test string.'; 
str = str.split("\"").join("\\\""); \\outputs "This is \"just a test string." 

你可结合两者

str = str.split("\"").join("\\\"").split("'").join("\\'");