2013-03-28 50 views
0

我有一個腳本會遍歷頁面並返回所有選定元素 - 在這種情況下,<embed...>(Javascript)來自嵌入代碼的YouTube視頻ID - 正則表達式?

例如,當在博客中找到YouTube視頻時,它會返回iframe。我可以採用iframe src,通過函數傳遞它,並將視頻ID正則表達。但是,如果YouTube視頻位於YouTube頁面中,則其嵌入方式不同,視頻ID在「flashvars」屬性中找到。

下面是一個例子視頻嵌入:http://pastie.org/7155840

什麼你們會推薦確認SRC諸如YouTube,並從中獲取視頻ID qlo5XHZ8-zI的最佳方式?

回答

2

這是一個不使用正則表達式的解決方案。

首先確認它作爲YouTube的:

if (e.src.substr(0, 19) != "http://s.ytimg.com/") return false 

然後將解壓後的視頻ID:

// get the flashvars 
var flashvars = e.getAttribute("flashvars") 
// convert flashvars string to key-value pairs 
flashvars = flashvars.split("&").map(function(entry) { 
    return entry.split("=", 2) 
}) 
// look up the value of the "video_id" key 
var video_id = flashvars.filter(function(entry) { 
    return entry[0] == "video_id" 
})[0] 

video_id現在應該是視頻的ID。

+0

太好了,謝謝! – lifwanian

相關問題