我有一些聊天脚本,我正在尝试在单击发送或提交之前过滤输入字段。 这是我的输入字段:
<input required type="text" name="content" maxlength="300" id="content" placeholder="Write Your Message.." autocomplete="off">
提交
<button type="submit" class="sound-btn" id="submit_button">
<i class="fa fa-paper-plane"></i>
</button>
当我尝试发送一些标签时
<img src="avatar/user1_13128662_tumb.jpg">
<div id="test">
demo text
</div>
不幸的是正在工作
我需要做什么.. 从输入中删除所有 attr 标签或防止在输入中写入 html 标签,因为所有这些数据都保存在数据库中,非常危险,并且也允许 xss 注入(inject) 像这样的东西
<b>
<div>
</div>
<img
<a
<li
<ul
and all the HTML tags just keep links and numbers and normal text
我认为所有 HTML 标签 我需要保留什么 http 和 https 以及 mailto: 以及普通文本和数字 只需在通过 javascript 或 jquery 发送之前过滤不需要的字符..谢谢
最佳答案
您可以将一个简单的正则表达式应用于输入的 onchange 事件:
document.getElementById('content').addEventListener('change', (e)=> {
let tValue = e.target.value.replace(/<[^>]+>/gim, '');
e.target.value = tValue;
});
关于javascript - 发送前从输入中删除 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58616947/