【问题标题】:(Javascript) YouTube video ID from embed code - regex?(Javascript) 来自嵌入代码的 YouTube 视频 ID - 正则表达式?
【发布时间】:2013-03-19 13:40:01
【问题描述】:
我有一个遍历页面并返回所有选定元素的脚本 - 在本例中为 <embed...>
例如,当在博客中找到 YouTube 视频时,它会返回一个 iframe。我可以获取 iframe src,通过函数传递它,然后正则表达式视频 ID。但是,当 YouTube 视频位于 YouTube 页面中时,其嵌入方式不同,并且视频 ID 位于“flashvars”属性中。
这是一个嵌入视频的示例:http://pastie.org/7155840
你们会推荐什么最好的方法来确认 src 为 YouTube,并从中获取视频 ID qlo5XHZ8-zI?
【问题讨论】:
标签:
javascript
jquery
regex
youtube
【解决方案1】:
这是一个不使用正则表达式的解决方案。
先确认为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。