我有一个应用程序,它提供了一些 HTML。然后需要将该 HTML 放入字符串中。此 HTML 包含单引号和双引号。是否可以在 JavaScript 中声明一个内部包含信息的字符串,并且不使用单引号或双引号?
我想如果不可能的话,有谁知道一种简单易行的方法来转义这些引号,以便我可以将其放入字符串中?请记住,该字符串的一部分将是我稍后需要执行的 JavaScript。
您需要使用
\
: 转义引号字符
var someString = 'escape all the quotation marks \"\'';
在javascript中,是否可以声明一个内部包含信息的字符串,并且不使用单引号或双引号?
不。 JavaScript 字符串文字用单引号或双引号分隔。这些是唯一的选择。
有谁知道一种简单易用的方法来转义这些引号,以便我可以将其放入字符串中?
你的意思是字符串文字吗?
var str = "var foo=\"bar\"; function say(it) { alert('It is: ' + it); say(foo);";
还是以编程方式?
str = str.replace(/"/g, '\\"');
转义引号的一个简单方法是使用 javascript 转义函数。
使用
escape
函数替换特殊字符(包括单引号和双引号)。如果需要,您可以稍后使用 unescape
函数将字符串返回到正常状态。
例如:
var data = 'hello my name is "James"';
alert(escape(data)); //Outputs: hello%20my%20name%20is%20%22James%22
我知道这是一个老问题,但有一种处理它的方法,这里还没有人提出,它是模板文字。基本上,这个符号 (`),称为反引号。它们的工作方式与单引号和双引号相同,但增加了多行支持。
例如,下面的 String 包含两种引号类型。使用反引号,这可以解决问题:
var str = `This is a quote ' and a doublequote ".`;
由于反引号不常用(或在键盘上找到),因此它不会引起任何问题。