我有一个 HTML 文本区域元素。我想阻止用户在此区域输入任何 HTML 标记。如何检测用户是否使用 JavaScript 在文本区域中输入了任何 HTML?
谢谢
最佳答案
其中一种方法是让keypress
事件返回false
当按下的键匹配<
时或>
。为了区分真正的 HTML 标签和无辜的“小于”和“大于”符号,您可能需要放入一些正则表达式。并且由于您无法使用正则表达式可靠地解析 HTML...但是有一个 jQuery方式:
var sanitized = $('<div>').html(textareavalue).text();
然而,通常的做法是让客户端输入它想要的任何内容,并在显示期间通过相关服务器端 View 技术清理 HTML。如何执行此操作取决于您所使用的 View 技术。例如,在 PHP 中,您可以使用 htmlspecialchars()
为此,在 JSP/JSTL 中 fn:escapeXml()
。这更加稳健,因为 Javascript 可以被客户端禁用/黑客攻击/欺骗。
关于JavaScript - 检测 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2631775/