我怎样才能逃脱单引号?
Posted
技术标签:
【中文标题】我怎样才能逃脱单引号?【英文标题】: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,但您可能想在问题中更改它。 【参考方案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'lo'>
【讨论】:
【参考方案4】:您可以使用 HTML 实体:
&#39;
为'
&#34;
为"
...
更多信息,您可以查看Character entity references in HTML。
【讨论】:
为什么应该对属性值使用双引号? @Pascal MARTIN:XML 也允许属性值使用单引号。 (见w3.org/TR/xml/#NT-AttValue) @Gumbo:哇!我认为我从未见过任何使用单引号包围属性值的 XML 文档;所以我不认为这实际上是有效的;;我只是(再次)在回答问题时学到了一些东西;所以,感谢那些 cmets! 我知道这是旧的,但我认为值得注意的是"
有一个 HTML 实体:&quot;
@Pascal,w3c 验证器显示单引号对属性有效。并查看***.com/questions/2210430/…【参考方案5】:
您可以使用&apos;
(在 IE 中是不确定的)或&#39;
(应该可以在任何地方使用)。如需完整列表,请参阅W3C HTML5 Named Character References 或HTML entities table on WebPlatform.org。
【讨论】:
哇,我写这篇文章已经有一段时间了。感谢您的关注 - 我已经更新了 W3C 和 WebPlatform.org 上两个表格的链接。 这些工作“无处不在”,除了在 VXML 表达式属性中需要进一步转义,因为在 VXML 中,字符串变量值在属性定义的普通双引号内表示为单引号: 【参考方案6】:您可以尝试使用:&#145;
【讨论】:
【参考方案7】:在 HTML 的上下文中,您需要使用 HTML 来表示该字符。对于 HTML,您需要使用 numeric character reference &#39;
(&#x27;
十六进制):
<input type='text' id='abc' value='hel'lo'>
【讨论】:
但我没明白你说的context of html
是什么意思?
@coding_idiot 看看不同的tokens a HTML parser may encounter during the parsing process。每个状态都有一组不同的解析规则,这些规则基于输入触发。并非每个州都允许字符引用。现在,如果您查看attribute value (single quoted),您可以看到&
表示字符引用的开始。【参考方案8】:
可能是最简单的方法:
<input type='text' id='abc' value="hel'lo">
【讨论】:
以上是关于我怎样才能逃脱单引号?的主要内容,如果未能解决你的问题,请参考以下文章