如何在 JavaScript 中转义单引号 ( ' )? [复制]

Posted

技术标签:

【中文标题】如何在 JavaScript 中转义单引号 ( \' )? [复制]【英文标题】:How do I escape a single quote ( ' ) in JavaScript? [duplicate]如何在 JavaScript 中转义单引号 ( ' )? [复制] 【发布时间】:2013-04-14 15:14:09 【问题描述】:

更新: 我想对这个问题给出一个更新的答案。首先,让我声明如果您尝试完成我在下面的内容,我建议您改为通过adding event listeners 管理事件。我强烈建议您在项目中使用jQuery,并使用它们的语法manage event listeners 而不是使用DOM。

问题

好的,我基本上就是这样做的:

document.getElementById("something").innerhtml = "<img src='something' onmouseover='change(\'ex1\')' />";

我不想在我放 \' 的地方使用双引号 (")。我只想要一个单引号,所以我尽量不让它在使用时放双引号。我试图在最终结果。

<img src="something" onmouseover="change('ex1')" />

逃避对我不起作用。

我标记的答案工作正常,但是,更清洁(和更专业的方式,IMO)是loganfsmyth's answer。

【问题讨论】:

***.com/questions/8744315/… 【参考方案1】:

您应该始终考虑浏览器最终会看到什么。在这种情况下,它将看到:

<img src='something' onmouseover='change(' ex1')' />

换句话说,“onmouseover”属性只是change(,还有一个名为ex1')'的“属性”没有值。

事实上,HTML 不使用\ 作为转义字符。但它确实将&amp;quot;&amp;apos; 分别识别为转义引号和撇号。

掌握了这些知识,使用它:

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(&quot;ex1&quot;)' />";

...话虽如此,您可以只使用 javascript 引号:

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\"ex1\")' />";

【讨论】:

……或者,更好的是,根本不使用内联属性处理程序;尤其是通过 javascript 创建的元素。 试过了。它仍然给了我 undefined 而不是给我的价值 ex1 好的。我犯了一个用户错误...放入错误的位置。 先生,如果我写 &lt;input type = "button" value ="pressme" onclick= 'alert('hello')' &gt; 不起作用但如果我将其更改为 "alert('hello')" 那么它为什么会这样? @SurajJain 你读过答案了吗?【参考方案2】:

这里的答案很简单:

您已经将它包含在双引号中,因此无需使用\ 对其进行转义。

如果要在单引号字符串中转义单引号:

var string = 'this isn\'t a double quoted string';
var string = "this isn\"t a single quoted string";
//           ^         ^ same types, hence we need to escape it with a backslash

或者,如果您想转义 \',您可以将 bashslash 转义为 \\,并将引号转义为 \',如下所示:

var string = 'this isn\\\'t a double quoted string';
//                    vvvv
//                     \ ' (the escaped characters)

但是,如果包含不同引号类型的字符串,则不需要转义:

var string = 'this isn"t a double quoted string';
var string = "this isn't a single quoted string";
//           ^        ^ different types, hence we don't need escaping

【讨论】:

Sir &lt;input type = "text" value = "abc" id="text"/&gt; &lt;input type = "button" value ="pressme" onclick= "alert('getElementById("text").value')" &gt; 这不起作用你能指出错误吗? @SurajJain 首先,您不应该在警报中使用引号 - 您正在输出一个文本值,其次您应该转义引号或在脚本中更改它们的类型。跨度> 谢谢,你能告诉我行高是多少吗? @SurajJain 这里的 cmets 并不适合任何无关的讨论,但行高是行的高度。你可以check out the line-height entry on MDN【参考方案3】:

您可以在 JavaScript 中转义 ',例如 \'

【讨论】:

【参考方案4】:

由于值实际上是在 HTML 属性中,因此您应该使用 &amp;apos;

"<img src='something' onmouseover='change(&apos;ex1&apos;)' />";

【讨论】:

谢谢..我试过一次,但我想我可能会把它放在最糟糕的位置。 这解决了我的问题。谢谢。 当我尝试在 text/x-template 中使用时,这对我有用。【参考方案5】:
    document.getElementById("something").innerHTML = "<img src=\"something\" onmouseover=\"change('ex1')\" />";

    document.getElementById("something").innerHTML = '<img src="something" onmouseover="change(\'ex1\')" />';

它应该可以工作...

【讨论】:

以上是关于如何在 JavaScript 中转义单引号 ( ' )? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Presto 中转义单引号?

如何在 MySQL 中转义单引号

在 PHP/MySQL 插入中转义单引号不起作用

如何在 Sybase 中转义单引号

如何在单引号字符串中转义单引号

如何在 CSS 中转义单引号或双引号?