一千萬個為什麽

搜索

JavaScript不會解析YouTube網址

我試圖制作一個腳本,使用JavaScript上的RegExp解析YouTube網址以獲取視頻ID,如下所示:

function youtube_id_extract(url) {
  var youtube_id;
  youtube_id = url.replace(/^[^v]+v.(.{11}).*/,"$1");

  return youtube_id;
}

但我嘗試過使用此網址: http://www.youtube.com/watch?v= Hb_IXwcwcjg ,它不會解析。這個RegEx有什麽問題?

最佳答案

它工作正常:

> var url = "http://www.youtube.com/watch?v=Hb_IXwcwcjg";
> var youtube_id = url.replace(/^[^v]+v.(.{11}).*/,"$1");
"Hb_IXwcwcjg"

然而,你的正則表達式需要更復雜。你可以試試這個,它有相同的效果(除非它失敗,如果字符串不匹配,則會失敗,而不是靜默地返回相同的字符串):

youtube_id = url.match(/\?v=(.*)/)[1];

轉載註明原文: JavaScript不會解析YouTube網址