【问题标题】:How can I escape a single quote?我怎样才能逃脱单引号?
【发布时间】:2011-01-26 13:55:25
【问题描述】:

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

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

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

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

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

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

如何成功转义单引号?

【问题讨论】:

  • 嘿 Ravi,这更像是一个 html 问题。我将问题重新标记为 HTML,但您可能想在问题中更改它。

标签: html escaping


【解决方案1】:

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

ʼ - U+02BC
’ - U+2019

【讨论】:

  • 这是解决问题的有效方法,我经常这样做。我只是直接粘贴字符。
【解决方案2】:

使用 javascript 内置函数 escape 和 unescape

例如

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 字符串化数据要在属性中使用,这将很有帮助

【讨论】:

  • escape 不是 unicode 安全的。该规范建议不要使用它。
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

    您可以使用 HTML 实体:

    • &amp;#39;'
    • &amp;#34;"
    • ...

    更多信息,您可以查看Character entity references in HTML

    【讨论】:

    • 为什么应该对属性值使用双引号?
    • @Pascal MARTIN:XML 也允许属性值使用单引号。 (见w3.org/TR/xml/#NT-AttValue
    • @Gumbo:哇!我认为我从未见过任何使用单引号包围属性值的 XML 文档;所以我不认为这实际上是有效的;;我只是(再次)在回答问题时学到了一些东西;所以,感谢那些 cmets!
    • 我知道这是旧的,但我认为值得注意的是 " 有一个 HTML 实体:&amp;quot;
    • @Pascal,w3c 验证器显示单引号对属性有效。并查看stackoverflow.com/questions/2210430/…
    【解决方案5】:

    您可以使用&amp;apos;(在 IE 中是不确定的)或&amp;#39;(应该可以在任何地方使用)。如需完整列表,请参阅W3C HTML5 Named Character ReferencesHTML entities table on WebPlatform.org

    【讨论】:

    • 哇,我写这篇文章已经有一段时间了。感谢您的关注 - 我已经更新了 W3C 和 WebPlatform.org 上两个表格的链接。
    • 这些工作“无处不在”,除了在 VXML 表达式属性中需要进一步转义,因为在 VXML 中,字符串变量值在属性定义的普通双引号内表示为单引号:
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

      在 HTML 的上下文中,您需要使用 HTML 来表示该字符。对于 HTML,您需要使用 numeric character reference &amp;#39;&amp;#x27; 十六进制):

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

      【讨论】:

      【解决方案8】:

      可能是最简单的方法:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 2021-01-27
        • 2020-08-10
        • 1970-01-01
        相关资源
        最近更新 更多