我如何逃脱一个单引号(')在JavaScript? [重复](How do I esca

2019-08-31 17:09发布

这个问题已经在这里有一个答案:

  • 在JavaScript函数单引号逃逸参数 6个回答

更新:我想给一个更新的回答这个问题。 首先,让我们,如果你试图完成什么,我有以下,我建议您通过管理事件我说明添加事件侦听器来代替。 我强烈建议您使用jQuery的为您的项目和使用他们的语法来管理事件侦听器在使用DOM。

好吧,我基本上这样做:

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

我不想双引号(“),我把\”。我只想要一个单引号,所以我试图不让它投入使用时,我试图在最终结果达到这个双。

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

转义是不是为我工作。

我的答案标工作正常,但是,清洁(更具有专业外观的方式,IMO)是loganfsmyth的答案 。

Answer 1:

你应该总是考虑哪些浏览器将在年底看到。 在这种情况下,它会看到这一点:

<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\")' />";


Answer 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


Answer 3:

你可以逃脱'在JavaScript像\'



Answer 4:

由于数值实际上是一个HTML属性里面,你应该用&apos;

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


Answer 5:

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

要么

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

应工作...



文章来源: How do I escape a single quote ( ' ) in JavaScript? [duplicate]