我的网站上有一个文本框,我想阻止任何形式的 html 输入。显然我已经在服务器端阻止了它,但出于多种原因我也想使用 javascript 来阻止它。我在 Google 上进行了快速搜索,看看是否有一些现成的功能可用,但我找不到。
有人知道怎么做吗?
编辑:抱歉,如果问题不清楚。我基本上想在用户在文本框中输入 html 然后尝试提交表单时显示错误。服务器已被编程为拒绝来自文本框的 HTML 输入,但我也想在客户端阻止它。
最佳答案
HTML
<textarea id='noHTML'></textarea>
JS
var ta = document.getElementById('noHTML');
ta.onkeyup = function (e) {
var val = this.value;
// alternate regexp /<\/*(p|div|span)\s*.*>/g
// fill the above regex with all html tags
if(val.match(/<\/*[^<>]\s*.*>/g)) {
// alert('no html');
// don't want an alert ? you can replace all html expressions
// alternate syntax for all entities
// this.value = val.replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, """);
// its long and slow but the choice is yours
this.value = val.replace(/</g, '<').replace(/>/g, '>');
}
}
您可以在 jsfiddle 测试和使用它。 ;
这是解决您问题的简单方法。我给您的建议是在表单提交期间替换实体,或者如果您根本不想要它,您可以在输入时提醒用户。
关于javascript - 使用 Javascript 检查 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17891048/