如何在 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 不使用\
作为转义字符。但它确实将&quot;
和&apos;
分别识别为转义引号和撇号。
掌握了这些知识,使用它:
document.getElementById("something").innerHTML = "<img src='something' onmouseover='change("ex1")' />";
...话虽如此,您可以只使用 javascript 引号:
document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\"ex1\")' />";
【讨论】:
……或者,更好的是,根本不使用内联属性处理程序;尤其是通过 javascript 创建的元素。 试过了。它仍然给了我 undefined 而不是给我的价值 ex1 好的。我犯了一个用户错误...放入错误的位置。 先生,如果我写<input type = "button" value ="pressme" onclick= 'alert('hello')' >
不起作用但如果我将其更改为 "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<input type = "text" value = "abc" id="text"/>
<input type = "button" value ="pressme" onclick= "alert('getElementById("text").value')" >
这不起作用你能指出错误吗?
@SurajJain 首先,您不应该在警报中使用引号 - 您正在输出一个文本值,其次您应该转义引号或在脚本中更改它们的类型。跨度>
谢谢,你能告诉我行高是多少吗?
@SurajJain 这里的 cmets 并不适合任何无关的讨论,但行高是行的高度。你可以check out the line-height
entry on MDN【参考方案3】:
您可以在 JavaScript 中转义 '
,例如 \'
【讨论】:
【参考方案4】:由于值实际上是在 HTML 属性中,因此您应该使用 &apos;
"<img src='something' onmouseover='change('ex1')' />";
【讨论】:
谢谢..我试过一次,但我想我可能会把它放在最糟糕的位置。 这解决了我的问题。谢谢。 当我尝试在 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 中转义单引号 ( ' )? [复制]的主要内容,如果未能解决你的问题,请参考以下文章