Javascript正则表达式匹配iframe src

Javascript正则表达式匹配iframe src,javascript,regex,Javascript,Regex,如果我有两个iFrame,如何匹配没有youtube src的iFrame <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> 变量a='' var b=a.ma

如果我有两个iFrame,如何匹配没有youtube src的iFrame

<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>

变量a=''

var b=a.match(/(您将所有数据放在一个字符串中,可能包含多个标记?在这种情况下,您需要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)
var string='TEST'
函数过滤器\u iframe(iframe\u标签){
//如果iframe中有youtube,请原封不动地返回
if(/src=“.+youtube/.test(iframe_标记)){return iframe_标记}
//如果不是-用空字符串替换它,有效地删除它
返回“”
}
//首先,在字符串中找到每个iframe并调用函数检查是否需要删除它
var filtered=string.replace(/(.*)/g,filter\u iframe)
console.log(已过滤)

我想使用正则表达式,这样我可以在显示之前替换iframe。@FlorianShena我不确定我是否理解你的意思?我有一个包含html的字符串,我在其中使用regexp来删除任何不需要的数据,但我不知道如何删除不是YouTube视频的iframe。@FlorianShena我更新了我的答案可能不是最好的,但是我找不到一个简单的方法来使用正则表达式。另外,警告如果任何HTML格式不正确,它可能会删除比您想要的多得多的内容。
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)