JavaScript - 检测HTML

use*_*662 0 html javascript

我有一个HTML textarea元素.我想阻止用户在此区域中输入任何HTML标记.如何检测用户是否使用JavaScript输入任何HTML textarea?

谢谢

Bal*_*usC 5

其中一种方法是让keypress事件回归false当按下键匹配<>.为了区分真正的HTML标签与无辜的"小于"和"大于"的标志,你可能需要加入一些正则表达式.而且因为你无法使用正则表达式可靠地解析HTML ...但是有一种jQuery方式:

var sanitized = $('<div>').html(textareavalue).text();
Run Code Online (Sandbox Code Playgroud)

然而,通常的做法是让客户端输入它想要的任何内容,并在显示期间通过所讨论的服务器端视图技术清理HTML .怎么做取决于你正在使用的视图技术.例如,PHP可以htmlspecialchars()用于此和JSP/JSTL中fn:escapeXml().这更加健壮,因为Javascript可以被客户端禁用/黑客攻击/欺骗.