【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回まで
  • 登録:
  • 終了:2012/01/28 09:57:30
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Cherenkov No.2

回答回数1504ベストアンサー獲得回数493

ポイント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

回答回数1728ベストアンサー獲得回数320

ポイント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

回答回数1504ベストアンサー獲得回数493ここでベストアンサー

ポイント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

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

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

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

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

回答リクエストを送信したユーザーはいません