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