2012-04-16 11 views
3

iframeが2つある場合、youtube srcではないものとどのように一致させることができますか?Javascriptの正規表現と一致するiframe src

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

答えて

4

あなたはいくつかのタグを含むことができ、単一の文字列にすべてのデータを持っていますか?その場合は、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) 
1
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],'')} 
}​ 

http://jsfiddle.net/7ykXv/

+0

私はそれを表示する前にiframeを置き換えることができるので、正規表現を使用したいと思います。 –

+0

@FlorianShena私はあなたが何を意味するのか分かりませんか? – qw3n

+0

私は不要なデータを削除するためにregexpを使用するhtmlを含む文字列を持っていますが、YouTubeのビデオではないiframeを削除する方法はわかりません。 –

関連する問題