人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【javascriptの正規表現】

youtubeのURLから、動画のID(?)だけを抜き出したいです。

パターンがいくつかあるのですが、
どのURLの場合でも、抜き出したいです。
jQueryなどは使えません。

http://www.youtube.com/user/AKB48?feature=watch#p/search/0/lkHlnWFnA0c
http://www.youtube.com/watch?v=lkHlnWFnA0c&feature=youtu.be
https://www.youtube-nocookie.com/v/lkHlnWFnA0c?version=3&hl=ja_JP
https://www.youtube-nocookie.com/embed/lkHlnWFnA0c
http://youtu.be/lkHlnWFnA0c

から

lkHlnWFnA0c

を変数に入れたいです。


正規表現が得意な方、よろしくお願いします。

●質問者: PEPOTA
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● oil999
●50ポイント

変数urlにyoutubeのURLが入っているとします。
以下のスクリプトで変数strにID部分が代入されます。

var mat = url.match(/[\/?=]([a-zA-Z0-9]{11})[&\?]?/);
var str = mat[1];

PEPOTAさんのコメント
ありがとうございます。

2 ● Cherenkov
●50ポイント ベストアンサー

idの条件は11桁の英数字,ハイフン,アンダーバーのようなので、

['http://www.youtube.com/user/AKB48?feature=watch#p/search/0/lkHlnWFnA0c',
'http://www.youtube.com/watch?v=lkHlnWFnA0c&feature=youtu.be',
'https://www.youtube-nocookie.com/v/lkHlnWFnA0c?version=3&hl=ja_JP',
'https://www.youtube-nocookie.com/embed/lkHlnWFnA0c',
'http://youtu.be/lkHlnWFnA0c'].forEach(function(e){
 console.log(/[/?=]([-\w]{11})/.exec(e)[1])
})

var url = 'http://www.youtube.com/user/AKB48?feature=watch#p/search/0/lkHlnWFnA0c';
var id = /[/?=]([-\w]{11})/.exec(url);
if (id) {
 id = id[1];
 alert(id);
}

PEPOTAさんのコメント
ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ