Regex для извлечения домена и id видео из youtube/vimeo url

Я копирую функцию, которая будет принимать youtube/vimeo url и возвращать сайт, с которого пришло видео (vimeo/yt), а также id видео.

Вот что у меня есть на данный момент: http://jsfiddle.net/csjwf/181/

Result:
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 + "
ID: " + video.id; var video = parseVideoURL("http://vimeo.com/22080133"); result.innerHTML += "
--
Provider: " + video.provider + "
ID: " + video.id;

Выход:

Result:
Provider: youtube
ID: PQLnmdOthmA
--
Provider: vimeo
ID: 2208013

Однако, обратите внимание, что для видео с vimeo, если url заканчивается на ID, последняя цифра всегда обрезается. Если добавить косую черту в конец url vimeo, то id вытягивается полностью.

12
задан Wesley Murch 4 March 2012 в 06:38
поделиться