2つの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>
2つの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>
すべてのデータが1つの文字列に含まれていますが、複数のタグが含まれている可能性がありますか?その場合、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 a='<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><iframe src="http://www.youtube.com/"></iframe>'
var b=a.match(/(<iframe.+?<\/iframe>)/g),l=b.length,i=0;
for(i;i<l;i++){
if(b[i].indexOf('youtube.com')>-1){a=a.replace(b[i],'')}
}