インデックス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\]))/;
あなたには発生しなかった問題がある場合や、この問題を解決するのに役立つ場合に備えて、HTMLを投稿してください。 – zer00ne
@ zer00ne '[埋め込み] https://www.youtube.com/embed/123123 [/埋め込み] ffdsads