JavaScript - 检测 HTML

标签 javascript html

我有一个 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/

相关文章:

javascript - 输入单元格时存储单元格的值

html - 如何在 CSS/HTML 中将复选框放在一行中

javascript - 文件上传 - 从输入框中删除值

javascript - 通过 DOM 动态添加 "selected"到 HTML 选项

html - 全屏背景

html - 输入字段中的格线

html - 虚线没有包围预期的部分(最近的工作经历)——错在哪里?

javascript - 从javascript中的数组对象获取数据

javascript - 等待 Angular 完成更新 DOM

javascript - 如何从嵌套数组中拼接数组 - javascript