【问题标题】:Generic way to Escape Quotes in Javascript Variable在 Javascript 变量中转义引号的通用方法
【发布时间】:2011-11-04 16:09:24
【问题描述】:

我有一个表单,用户可以在其中输入任何 HTML。

var title = "Cool <a href="http://google.com">Check This</a>"

如您所见,变量有",但也可以是'。如果存在",则会导致错误。有什么更好的方法来解决这个问题?像下面这样在数据库中存储转义字符串?

$title = str_replace('"', "'", $_REQUEST['title']); // Replace double quote with single quote as js variable above is wrapped with double quotes.

或者在页面显示之前转义它?像 escape 这样的 jQuery 中的任何东西都可以在这里提供帮助吗?

【问题讨论】:

  • @Alex:错了。如果您有类似&lt;span title="This link leads to awesome stuff."&gt;&lt;/span&gt; 的内容,它将转换为&lt;span title=This link leads to awesome stuff&gt;&lt;/span&gt;。结果,只有This 会出现在文字上。

标签: javascript jquery escaping quotes


【解决方案1】:
var title="Cool <a href=\"http://google.com\">Check This</a>"

好吧,您无法使用 JavaScript 对其进行转义,因为 JavaScript 需要查看您想要转义的内容以及您想要转义的内容。如果你使用 PHP,你可以在插入 JavaScript 之前使用addslashes()

无论如何,您应该小心允许插入任何 HTML。错误转义的 HTML(例如允许插入 &lt;script&gt;)可能允许执行各种危险的操作,例如窃取所有 cookie。

【讨论】:

  • htmlspecialchars 更好。
  • @Alex: 嗯……没问题。问题是该值包含用于存储它的"htmlspecialchars() 会将 " 替换为 &amp;quot; 并将 &amp;lt; 替换为 &amp;lt; 使 HTML 无法使用。
  • 然后使用htmlspecialchars_decode ();?我希望这也被暗示了。
猜你喜欢
  • 2012-07-28
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 2017-06-20
  • 1970-01-01
  • 2018-10-20
  • 2020-01-31
相关资源
最近更新 更多