我在我的网站上有一个文本框,我想阻止任何形式的html输入。我显然已经在服务器端阻止它,但我也想用多种原因阻止它使用JavaScript。我做了一个快速谷歌搜索,看看是否有一些现成的功能可用,但我找不到任何。使用Javascript检查HTML
有谁知道如何做到这一点?
编辑:对不起,如果问题不明确。我基本上想在用户在文本框中键入html并尝试提交表单时显示错误。服务器已经被编程为拒绝来自文本框的HTML输入,但我也想阻止它在客户端。
我在我的网站上有一个文本框,我想阻止任何形式的html输入。我显然已经在服务器端阻止它,但我也想用多种原因阻止它使用JavaScript。我做了一个快速谷歌搜索,看看是否有一些现成的功能可用,但我找不到任何。使用Javascript检查HTML
有谁知道如何做到这一点?
编辑:对不起,如果问题不明确。我基本上想在用户在文本框中键入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它玩;
这是您的问题的光解决方案。我的建议是在表单提交期间替换实体,或者如果您完全不需要,可以提醒用户输入。
但我不明白,如果标签存在,我们是否试图阻止帖子?为什么我们不能用他们的HTML实体替换特殊的字符。 –
@IanClark我会编辑它然后...举起 –
不要误解我的意思,如果你想阻止用户发布信息,这将是一个很好的解决方案,但你可以做一些像[this](http:///stackoverflow.com/questions/784586/convert-special-characters-to-html-in-javascript)更改所有你需要的字符。 –
你不想让用户输入? –
你有没有考虑像'<' '>'这样的blockin chars? – DontVoteMeDown
我不明白这个问题吗?你只是想禁用输入?还是你想*防止其中的HTML标记? –