怎样限制文本框中不能输入HTML标签

 我来答
freezing866
推荐于2016-04-17 · 知道合伙人互联网行家
freezing866
知道合伙人互联网行家
采纳数:145 获赞数:1032
六年网站开发经验,开发过的网站超过百个。擅长B2B、B2C、营销型网站开发。公司网址:www.wangyingshi.com

向TA提问 私信TA
展开全部

要限制文本框输入HTML标签,可以通过js的replace方法来过滤标签,原理是通过正则表达式匹配到左尖括号和右尖括号然后替换成空格。这样我们输入的HTML标签就给人为去掉了,提交后也不会对服务器造成不良的影响。

<input value="<b>test</b><script>alert(1)</script>"  onchange="setContent(this.value)" />
<script>
function setContent(str) {
str = str.replace(/<\/?[^>]*>/g,'');          //去除HTML tag
str.value = str.replace(/[ | ]*\n/g,'\n');    //去除行尾空白

alert(str);
return str;
}
</script>
育知同创教育
2018-07-30 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
要限制文本框输入HTML标签,可以通过js的replace方法来过滤标签,原理是通过正则表达式匹配到左尖括号和右尖括号然后替换成空格。这样我们输入的HTML标签就给人为去掉了,提交后也不会对服务器造成不良的影响。

<input value="<b>test</b><script>alert(1)</script>" onchange="setContent(this.value)" />
<script>
function setContent(str) {
str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag
str.value = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白

alert(str);
return str;
}
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ba4eaa2a2
2015-03-03 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:61.2万
展开全部
可以用正则处理这个东西,不过html标签还是有点多,这样写出来的正则可能比较麻烦,而且想替换这种不定长的字符数据,动态验证一般不是很好搞,你可以写好正则后,在你输入完成之后再进行替换处理,不过建议你要处理这种最好是使用一种在线编辑器,那个东西一般可以直接获取文本内容
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式