@maksmaksimovich

Как написать такое регулярное выражение?

Нужна регулярка для поиска всех img, у которых в srс есть /test/ , как такое сделать?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Не нужны здесь регулярные выражения:

document.querySelectorAll('img[src*="/test/"]')

UPD. Оказывается, автор вопроса с первого раза не сумел рассказать, чего ему надо. Вынесено из комментариев:

это не в dom, а в строке

О как. Ну а я в свою очередь продолжу настаивать на ненужности регулярных выражений. Создаём элемент, загоняем в него строку, ищем нужные элементы, получаем их разметку:

const div = document.createElement('div');
div.innerHTML = str;
const imgsStr = [...div.querySelectorAll('img[src*="/test/"]')].map(n => n.outerHTML).join('');

или

const imgsStr = Array.from(
  new DOMParser().parseFromString(str, 'text/html').querySelectorAll('img[src*="/test/"]'),
  n => n.outerHTML
).join('');

UPD. Нет, со второго раза тоже не получилось. Всплыли ещё подробности:

мне нужно удалить из этой строки все картинки, которые...

Удалить, так удалить:

const div = document.createElement('div');
div.innerHTML = str;
div.querySelectorAll('img[src*="/test/"]').forEach(n => n.remove());
str = div.innerHTML;

или

const d = new DOMParser().parseFromString(str, 'text/html');
d.querySelectorAll('img[src*="/test/"]').forEach(n => n.remove());
str = d.body.innerHTML;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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