gikami
@gikami
web программист

Как при вставке текста с HTML в редактор, очистить его при этом оставив определенные теги (Без атрибутов) на js?

Грубо говоря человек может скопировать где нибудь текст с сайта со всем содержимым и вставить в форму с редактором.
Как избежать этого и удалить все ненужное после вставки в форму или перед?
Оставить нужно основные теги, такие как i, em, del, b, p, br.
Нужно именно на стороне JS, в момент вставки ctrl+v или через мышку.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 2
Aetae
@Aetae Куратор тега JavaScript
Тлен
Во-первых: если вы используете какой-то готовый редактор, а не самописный - с вероятностью в 90% в нём уже есть готовый удобный функционал для этого. Почитайте документацию.

Если же делаете сами, то по событию paste очищайте входные данные как вам надо.
Ответ написан
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Например, саму очистку от тегов можно сделать так:
function strip_tags(text, tags = []) {
  return text.replace(/(<\/?)([a-z]+|h[1-6])\b[^<>]*>/gi,
    (match, p1, p2) => tags.includes(p2.toLowerCase()) ? p1 + p2 + '>' : '');
}

Вызов strip_tags(data, ['span', 'a']) вернёт текст data, из которого удалены все теги, кроме <span> и <a>, а у оставшихся тегов удалены все атрибуты.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы