在Javascript中替换引号?

9
为了制作一个Web应用程序,我将接收包含引号的文本字符串。因为我将要在文档中写入该字符串,所以它们需要被更改为撇号或转义。如果我尝试这样做却失败了,可能是因为该字符串的引号阻止了其余脚本的工作。如果需要,我会尝试澄清。谢谢!

你用什么语言编写网络应用程序? - Pekka
@James 请将你的示例代码和错误信息添加到问题中。 - Lachlan Roche
4个回答

20

将它们用于HTML的转义:

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

将它们转义为JS代码:

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

11

如果您在服务器上生成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
那么,如果字符串刚生成,并且我无法更改所生成的内容,我该如何转义该字符串中的所有引号呢?我想这是我的问题?谢谢! - James Wanchai

2

在一些HTML中尝试以下代码:

string.replace(/"/g, '');

如果只是JS,则可以使用以下代码:

string.replace(/"/g, '');

这将删除用户提交的值中不需要的引号。


1
您需要这样转义它们:
var foo = '\'foo\'';

因此,如果源字符串中有单引号,请将每个单引号替换为反斜杠和单引号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接