【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

を変数に入れたいです。


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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/01/27 21:45:03
  • 終了:2012/01/28 09:57:30

ベストアンサー

id:Cherenkov No.2

Cherenkov回答回数1503ベストアンサー獲得回数4932012/01/28 04:24:31

ポイント50pt

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);
}
id:keijiro

ありがとうございます。

2012/01/28 09:56:15

その他の回答(1件)

id:oil999 No.1

oil999回答回数1728ベストアンサー獲得回数3202012/01/27 22:39:54

ポイント50pt

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

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

ありがとうございます。

2012/01/28 09:56:12
id:Cherenkov No.2

Cherenkov回答回数1503ベストアンサー獲得回数4932012/01/28 04:24:31ここでベストアンサー

ポイント50pt

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);
}
id:keijiro

ありがとうございます。

2012/01/28 09:56:15

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません