Регулярные выражения с переменными в JavaScript

[Удален]
663

Не получается придумать шаблон регулярного выражения, чтобы можно было убирать слой, содержащий переменную, пример:

<div class="v"><img src="https://i1.ytimg.com/vi/Lwh6TVNb9P8/default.jpg"></div>

имеем переменную, содержащую код видео (в данном случае Lwh6TVNb9P8)

нужно удалить слой, содержащий такую переменную.

img.src может быть разным, поэтому фиксированные шаблон не подходит.

Нужно что-то типа

replace('<div class="v">'+var+'</div>', '');

Но опыта в JS не хватает чтобы сформулировать рабочий вариант.

siv1987
На сайте с 02.04.2009
Offline
427
#1

.replace(/<div class="v">.+?<\/div>/, '');

Joseph
На сайте с 13.07.2004
Offline
73
#2
siv1987:
.replace(/<div class="v">.+?<\/div>/, '');

Не, siv, у ТС задача чуть сложнее. Надо сначала определять, есть ли в контейнере div class=v определенный набор символов и если есть, тогда удалять весь этот контейнер.

RiDDi
На сайте с 06.06.2010
Offline
285
#3

А зачем тут регулярка-то? )) Перебирайте контейнеры и удаляйте если код контейнера содержит переменную.

Но если ради принципа то отталкивайтесь от src=""

аля:


|<div class="v"><img src="([^\"]+)?(YOURCODE)([^\"]+)?"></div>|
Вебмастер отдыхает на бережках морей. Заработок в интернете - дело техники.
siv1987
На сайте с 02.04.2009
Offline
427
#4
Joseph:
Не, siv, у ТС задача чуть сложнее. Надо сначала определять, есть ли в контейнере div class=v определенный набор символов и если есть, тогда удалять весь этот контейнер.

.replace(new RegExp('<div class="v"><img [^>]+'+var+'[^>]+></div>'), '');

var - переменную, содержащую код видео

[Удален]
#5
siv1987:
.replace(new RegExp('<div class="v"><img [^>]+'+var+'[^>]+></div>'), '');

var - переменную, содержащую код видео

Спасибо!! Именно то, что надо. Элегантный и работающий шаблончик.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий