人々はあなたの質問を誤解していると思います。. . ページ上の実際の要素について話しているのではなく、ページのテキストエリアに貼り付けられた別のページからiframe
の要素のソース コードですよね?iframe
私があなたを正しく読んでいるなら、はい、上記の回答には、文字列の属性にアクセスするために文字列をDOMオブジェクトに変換することを含むいくつかのオプションがありますが、単純に抽出できることを考えると、それは少し不格好に思えます文字列から必要な値。
適切な正規表現やその他の文字列操作を考え出すよりもコーディングする方が簡単かもしれませんが、それが最善の方法であるとは確信していません。繰り返しになりますが、個人的には、ページの一部として実際に使用されない DOM オブジェクトを作成することはあまり好きではありませんが、それは私だけかもしれません。:)
編集:正規表現/文字列操作ソリューションの追加:
src
この正規表現は、文字列から属性をキャプチャします。
var srcPattern = new RegExp("(?:src=\")([^\"]+)");
(?:src=\")
それに続く値のみが一致することを保証する「事前一致」です
([^\"]+)
src 属性の実際の URL と一致します。
textarea 入力からの値を照合します。
var textareaValue = $("#textareIDValue").val();
var srcMatch = textareaValue.match(srcPattern);
実際の値にアクセスするには、次を使用して、返された配列src
の 2 番目の項目を取得する必要があります。srcMatch
var srcValue = srcMatch[1];
返された配列 ( index 0
) の最初の項目は完全に一致しますが (提供したサンプルでは)、URL (サンプルで. . .src="http://player.vimeo.com/video/THIS_NEEDED
によってキャプチャされた部分) だけが必要なので、2 番目の項目は配列 (インデックス):([^\"]+)
http://player.vimeo.com/video/THIS_NEEDED
1
値を取得したのでsrc
、その最後の部分を取得する必要があるため、文字列split()
関数を使用して URL のすべての「部分」を取得します。
var srcPieces = srcValue.split("/");
最後の項目のみが必要なため、使用length - 1
してその配列から最後の項目を取得します。
var videoId = srcPieces[(srcPieces.length - 1)];
videoId
探している値になります (THIS_NEEDED
サンプル内)。
注: 私はあなたがやりたいと思う多くのエラーチェックを省略しました (例えば、match
関数が値を返したか、分割値の長さがsrc
0 より大きいかなど)。手順ですが、これで良いスタートが切れ、すべての手順がより理解しやすくなります。
コメントなしの合計コード:
var srcPattern = new RegExp("(?:src=\")([^\"]+)");
var textareaValue = $("#textareIDValue").val();
var srcMatch = textareaValue.match(srcPattern);
var srcValue = srcMatch[1];
var srcPieces = srcValue.split("/");
var videoId = srcPieces[(srcPieces.length - 1)];