如何在JavaScript中处理同时包含单引号和双引号的字符串

12

我有一个应用程序,需要读取一些HTML内容,并将其放入一个字符串中。这段HTML包含单引号和双引号。在JavaScript中,是否有可能声明一个不使用单引号或双引号的带有信息的字符串?

如果不可能的话,我想知道是否有简单易行的方法来转义这些引号,以便我可以将其放入字符串中。请记住,此字符串的一部分将是我稍后需要执行的JavaScript代码。


我认为你需要将其分开,可以尝试这样做:var myString = "她是" + '"惊人的!"'.是否有帮助? - Hector Sanchez
4个回答

11

您需要使用 \ 转义引号字符:

var someString = 'escape all the quotation marks \"\'';

2
在单引号字符串中,您不需要转义双引号。 - gen_Eric
4
可以,但这样做可以防止出现问题:<a onclick="javascript:doSomething('"');"` - digitalbath
2
更正:<a onclick="doSomething('"');", 因为 onclick 属性已经是 JavaScript。javascript: 前缀用于 href 属性中。 - Matt Ball
1
糟糕,我本来想使用 href="" 的。但是没错,意思是一样的。 - digitalbath

4

在javascript中,是否有可能声明一个字符串,并在其中包含信息,而不使用单引号或双引号?

不可能。JavaScript字符串文字必须用单引号或双引号括起来。这是唯一的选择。

有人知道一个简单易用的方法来转义这些引号,以便我可以将其放入字符串中吗?

你是指在字符串文字中吗?

var str = "var foo=\"bar\"; function say(it) { alert('It is: ' + it); say(foo);";

还是通过程序来实现?
str = str.replace(/"/g, '\\"');

2

请考虑使用比w3schools更可靠的来源,例如MDN:https://developer.mozilla.org/en/DOM/window.escape。 - Matt Ball

1
使用escape函数替换特殊字符(包括单引号和双引号)。如果需要,稍后可以使用unescape函数将字符串返回到其正常状态。
例如:
var data = 'hello my name is "James"';
alert(escape(data)); //Outputs: hello%20my%20name%20is%20%22James%22

这并没有回答问题 - 他正在问如何转义引号字符,以便可以创建字符串字面量。 - digitalbath
@digitalbath - 我理解这个问题更像是“我有一些数据(可能是来自 AJAX 请求的响应),我需要对它进行转义才能使用”,在这种情况下,这样做是可以的。 - James Allardice

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