使用 javascript 检查文本区域中是否输入了任何 html 标签

check whether any html tags entered in textarea using javascript

我有一个简单的评论系统,我希望用户不应该键入任何 html 特殊字符,如果他们这样做,他们应该发出 "html tags not allowed" 的警报。怎么做?

提交时,一个 ajax 调用被传递到另一个页面以将其存储在数据库中。

所以在 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 是对的。您也应该始终检查服务器端的用户输入。

请看这个问题Check if a string is html or not