(Javascript) YouTube视频ID从嵌入代码-正则表达式

(Javascript) YouTube video ID from embed code - regex?

本文关键字:代码 正则表达式 ID Javascript YouTube 视频      更新时间:2023-09-26

我有一个脚本,遍历页面并返回所有选定的元素-在本例中,是<embed...>

例如,当在博客中找到YouTube视频时,它返回一个iframe。我可以取iframe src,通过一个函数传递它,并正则化视频ID。然而,当YouTube视频在YouTube页面内,其嵌入方式不同,视频ID在"flashvars"属性中找到。

下面是一个视频嵌入示例:http://pastie.org/7155840

你们推荐最好的方法来确认src为YouTube,并从中获得视频ID qlo5XHZ8-zI ?

这里有一个不使用正则表达式的解决方案。

首先确认它是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。