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

siotufzp  于 2023-01-07  发布在  Java
关注(0)|答案(5)|浏览(173)
    • 此问题在此处已有答案**:

Why are inline event handler attributes a bad idea in modern semantic HTML?(3个答案)
Single quote escape in JavaScript function parameters(7个答案)
九年前就关门了。

    • 更新:**我想给这个问题一个更新的答案。首先,让我声明,如果你试图完成我下面的任务,我建议你用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

30byixjq

30byixjq1#

你应该考虑浏览器最后会看到什么,在这种情况下,它会看到:

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

换句话说,“onmouseover”属性只是change(,还有一个名为ex1')'的“属性”没有值。
事实上,HTML并没有使用\作为转义字符,但是它确实识别出&quot;&apos;分别作为转义引号和撇号。
有了这些知识,请使用以下方法:

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

......也就是说,您可以只使用JavaScript引号:

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

aurhwmvo2#

这里的答案很简单:
您已经将它包含在双引号中,所以没有必要使用\将它转义。
如果要转义单引号字符串中的单引号:

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
u0njafvf

u0njafvf3#

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

m4pnthwp

m4pnthwp4#

由于这些值实际上位于HTML属性内部,因此应该使用&apos;

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

8yparm6h5#

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

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

它应该是工作...

相关问题