У меня есть сценарий чата, и я пытаюсь отфильтровать поле ввода, прежде чем нажимать кнопку «Отправить» или «Отправить». Это мое поле ввода:
<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 тоже что-то вроде этого
<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 .. спасибо
2 ответа
Вы можете применить простое регулярное выражение к событию onchange вашего ввода:
document.getElementById('content').addEventListener('change', (e)=> {
let tValue = e.target.value.replace(/<[^>]+>/gim, '');
e.target.value = tValue;
});
Используйте регулярное выражение перед его отправкой в базу данных, идентифицируйте теги с помощью «<».
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.