У вас есть все данные в одну строку, которая может содержать несколько тегов? В этом случае вам нужно: 1) найти каждый отдельный iframe в строке, 2) проверить каждый найденный iframe, если вам нужно удалить его или оставить его в покое. Вот код, который делает это только с комментариями, показывающими, где выполняются каждый шаг:
var string='<iframe src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-feed-pub"></iframe><iframe src="http://www.youtube.com/embed/Y4MnpzG5Sqc?wmode=opaque"></iframe><iframe src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-feed-pub"></iframe><some_good_tag>TEST</some_good_tag><iframe src="http://www.youtube.com/embed/Y4MnpzG5Sqc?wmode=opaque"></iframe>'
function filter_iframe(iframe_tag){
// if iframe have youtube in it - return it back unchanged
if(/src=".+youtube/.test(iframe_tag)){ return iframe_tag }
// if not - replace it with empty string, effectively removing it
return ''
}
// first, find each iframe in string and call function to check if you need to remove it
var filtered=string.replace(/(<iframe.*?>.*?<\/iframe>)/g, filter_iframe)
console.log(filtered)
Я хотел бы использовать регулярное выражение, чтобы я мог заменить iframe перед его отображением. –
@FlorianShena Я не уверен, что понимаю, что вы имеете в виду? – qw3n
У меня есть строка, содержащая html, на которой я использую regexp для удаления любых нежелательных данных, но я не могу понять, как удалить iframes, которые не являются видео YouTube. –