2016-11-25 3 views
0

インデックス1のiframe srcのURLと一致する必要があります。このmatchAll関数を使用して、複数の一致を照合しています。javascriptのインデックス1のiframe srcの一致

if (typeof RegExp.prototype.matchAll !== "function") { 
    RegExp.prototype.matchAll = function(v) { 
     var tmp  = ""+ this, // So this.toString 
      src  = tmp.lastIndexOf("/"), 
      pattern = tmp.substring(1, src), 
      flags = tmp.substring(src + 1, tmp.length); 

     // Never forget "g", that prepends infinite loops for "while" 
     if (flags.indexOf("g") == -1) { 
      flags += "g"; 
     } 

     var re = new RegExp(pattern, flags); 
     var ms = [], m; 
     while (m = re.exec(v)) { 
      ms.push(m); 
     } 
     return ms; 
    }; 
} 

このテストコードの使用:

str = '<iframe width="560" height="315" src="https://www.youtube.com/embed/8L-6Hw7CZLQ" frameborder="0" allowfullscreen></iframe>'; 
var pattern = /\[embed\](.*?)\[\/embed\]|<iframe.*?src="(.*?)".*?<\/iframe>/; 
var matches = pattern.matchAll(str); 
console.log(matches); 
私はSRCを得るか

が、インデックス2上に、パターンが実際にインデックスを使用して他のものと一致したので、私は、インデックス1にそれを必要とする1 "url"として、コード全体を変更するのではなく、そのインデックスのすべてのURLにむしろ一致させます。

iframeのインデックス1のsrc URLを取得する正しいパターンは何ですか?これは動作するはず

var pattern = /(?:(?:<iframe.*?src=")|(?:\[embed\]))(.*?)(?:\"|(?=\[\/embed\]))/; 
+0

あなたには発生しなかった問題がある場合や、この問題を解決するのに役立つ場合に備えて、HTMLを投稿してください。 – zer00ne

+0

@ zer00ne '[埋め込み] https://www.youtube.com/embed/123123 [/埋め込み] ffdsads