我正在复制一个函数,该函数将接受一个YouTube/Vimeo网址并返回视频来源网站(Vimeo/YT)以及视频ID。
这是我目前拥有的:http://jsfiddle.net/csjwf/181/
<strong>Result:</strong>
<div id="result"></div>
function parseVideoURL(url) {
url.match(/^http:\/\/(?:.*?)\.?(youtube|vimeo)\.com\/(watch\?[^#]*v=(\w+)|(\d+)).+$/);
return {
provider : RegExp.$1,
id : RegExp.$1 == 'vimeo' ? RegExp.$2 : RegExp.$3
}
}
var result = document.getElementById("result");
var video = parseVideoURL("http://www.youtube.com/watch?v=PQLnmdOthmA&feature=feedrec_grec_index");
result.innerHTML = "Provider: " + video.provider + "<br>ID: " + video.id;
var video = parseVideoURL("http://vimeo.com/22080133");
result.innerHTML += "<br>--<br>Provider: " + video.provider + "<br>ID: " + video.id;
输出:
结果: 提供者:youtube ID:PQLnmdOthmA -- 提供者:vimeo ID:2208013
然而,请注意对于vimeo视频,如果url以ID结尾,则最后一个数字总是被截去。如果在vimeo url末尾添加斜杠,则可以完全获取id。