如何逃避单一报价?

时间:2010-03-11 20:52:45

标签: html escaping

如何在JavaScript中转义'(单引号)?

这是我正在尝试使用它的地方:

<input type='text' id='abc' value='hel'lo'>

上面代码的结果是在文本框中填充了“hel”。我试图用'和'代替,但这就是我得到的。

<input type='text' id='abc' value='hel\'lo'>

上面代码的结果是在文本框中填充了“hel \”。

如何成功逃避单引号?

8 个答案:

答案 0 :(得分:323)

您可以使用HTML实体:

    {li> &#39; ' {li> &#34; "
  • ...

有关详情,请参阅 Character entity references in HTML

答案 1 :(得分:55)

您可以使用&apos;(IE中为iffy)或&#39;(应该可以在任何地方使用)。有关完整列表,请参阅W3C HTML5 Named Character ReferencesHTML entities table on WebPlatform.org

答案 2 :(得分:9)

当您处于HTML环境中时,您需要使用HTML来表示该字符。对于HTML,您需要使用numeric character reference &#39;&#x27;十六进制):

<input type='text' id='abc' value='hel&#39;lo'>

答案 3 :(得分:7)

将其表示为文本实体(ASCII 39):

<input type='text' id='abc' value='hel&#39;lo'>

答案 4 :(得分:5)

可能是最简单的方法:

<input type='text' id='abc' value="hel'lo">

答案 5 :(得分:0)

如果由于某种原因您无法转义撇号字符并且您无法将其更改为 HTML 实体(在我的情况下为特定的 Vue.js 属性),您可以使用 replace 将其更改为不同的UTF-8 字符集中的撇号字符,例如:

toString

答案 6 :(得分:-1)

您可以尝试使用:&#145;

答案 7 :(得分:-1)

使用javascript inbuild函数转义和转义

例如

var escapedData = escape("hel'lo");   
output = "%27hel%27lo%27" which can be used in the attribute.

again to read the value from the attr

var unescapedData = unescape("%27hel%27lo%27")
output = "'hel'lo'"

如果您要在属性中使用大量json字符串化数据,这将很有帮助