[英]check whether any html tags entered in textarea using javascript
我有一个简单的评论系统,我希望用户不应该输入任何 html 特殊字符,如果他们这样做,他们应该发出“不允许 html 标签”的警报。 怎么做?
提交时,将 ajax 调用传递到另一个页面以将其存储在 db 中。
所以在javascript本身(在ajax调用之前),如何在输入的评论中找到任何html标签。
任何建议。
要检查您可以在 DOM 中创建一个元素,将注释注入其中并使用[element].getElementsByTagName('*')
来检查任何 html 元素。 如果它的length
不为0,说明注释中有html元素。 就像是:
document.querySelector('#check').addEventListener('click', doCheck); function doCheck(e) { var chkEl = document.createElement('div'), isok, report, value = document.querySelector('#testing').value; if (!value.length) {return true;} chkEl.innerHTML = value; report = document.querySelector('[data-report]'); isok = !chkEl.getElementsByTagName('*').length; report.setAttribute( 'data-report', !isok ? 'you can\'t enter html here!' : 'text looks ok' ); report.style.color = isok ? 'green' : 'red'; }
[data-report]:before { content: attr(data-report); }
<textarea id="testing" placeholder="type some stuff"></textarea> <span data-report=""></span> <br> <button id="check">check for html</button>
免责声明:您也应该始终检查服务器端。
您可以将以下语句与正则表达式一起使用:
if (/<[a-z][\s\S]*>/i.test(textareaContent)) {
alert("html tags not allowed");
}
Kooilnc 是对的。 您还应该始终检查服务器端的用户输入。
请看这个问题检查字符串是否为html
删除评论中的html标签
function sanitizeString(str) {
str = str.replace(/[^a-z0-9áéíóúñü \.,_-]/gim, " ");
return str.trim();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.