如何在 JavaScript 中容纳包含单引号和双引号的字符串

问题描述 投票:0回答:5

我有一个应用程序,它提供了一些 HTML。然后需要将该 HTML 放入字符串中。此 HTML 包含单引号和双引号。是否可以在 JavaScript 中声明一个内部包含信息的字符串,并且不使用单引号或双引号?

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

javascript string escaping double-quotes single-quotes
5个回答
12
投票

您需要使用

\
:

转义引号字符
var someString = 'escape all the quotation marks \"\'';

4
投票

在javascript中,是否可以声明一个内部包含信息的字符串,并且不使用单引号或双引号?

不。 JavaScript 字符串文字用单引号或双引号分隔。这些是唯一的选择。

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

你的意思是字符串文字吗?

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

还是以编程方式?

str = str.replace(/"/g, '\\"');

2
投票

转义引号的一个简单方法是使用 javascript 转义函数。

http://www.w3schools.com/jsref/jsref_escape.asp


1
投票

使用

escape
函数替换特殊字符(包括单引号和双引号)。如果需要,您可以稍后使用
unescape
函数将字符串返回到正常状态。

例如:

var data = 'hello my name is "James"';
alert(escape(data)); //Outputs: hello%20my%20name%20is%20%22James%22

0
投票

我知道这是一个老问题,但有一种处理它的方法,这里还没有人提出,它是模板文字。基本上,这个符号 (`),称为反引号。它们的工作方式与单引号和双引号相同,但增加了多行支持。

例如,下面的 String 包含两种引号类型。使用反引号,这可以解决问题:

var str = `This is a quote ' and a doublequote ".`;

由于反引号不常用(或在键盘上找到),因此它不会引起任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.