繁体   English   中英

检查是否使用 javascript 在 textarea 中输入了任何 html 标签

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM