【问题标题】:How can I accommodate a string with both single and double quotes inside of it in JavaScript如何在 JavaScript 中容纳包含单引号和双引号的字符串
【发布时间】:2011-10-01 12:01:07
【问题描述】:

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

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

【问题讨论】:

  • 好吧,我认为无论如何你都需要拆分它,你可以尝试这样的方法:var myString = "She's " + '"amazing!"'。有帮助吗?

标签: javascript string escaping double-quotes single-quotes


【解决方案1】:

你需要用\转义引号字符:

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

【讨论】:

  • 您不需要在单引号字符串中转义双引号。
  • 是的,但你可以,而且它可以防止这个问题:<a onclick="javascript:doSomething('"');"
  • 更正:<a onclick="doSomething('"');",因为 onclick 属性已经是 JavaScript。 javascript: 前缀用于href 属性。
  • 哎呀。意味着使用 href=""。但是,是的,同样的想法。
【解决方案2】:

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

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

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

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

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

还是以编程方式?

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

【讨论】:

    【解决方案3】:

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

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

    【解决方案4】:

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

    例如:

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

    【讨论】:

    • 这没有回答问题 - 他在问如何转义引号字符以便他可以创建字符串文字。
    • @digitalbath - 我读到这个问题更像是“我有一些数据(可能是来自 AJAX 请求的响应),我需要先转义才能使用它”,在这种情况下,这将是很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多