Разбор идентификатора Vimeo с использованием JavaScript?
Как анализировать идентификатор из URL-адреса Vimeo в JavaScript?
URL будет введен пользователем, поэтому мне нужно будет проверить, что они ввели его в правильном формате.
Мне нужен идентификатор, чтобы я мог использовать их простой API для извлечения видеоданных.
Ответы
Ответ 1
Поскольку URL-адреса для видео Vimeo состоят из http://vimeo.com/
, за которым следует числовой идентификатор, вы можете сделать следующее
var url = "http://www.vimeo.com/7058755";
var regExp = /http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;
var match = url.match(regExp);
if (match){
alert("id: " + match[2]);
}
else{
alert("not a vimeo url");
}
Ответ 2
regExp = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/
parseUrl = regExp.exec url
return parseUrl[5]
Это работает для всех допустимых URL-адресов Vimeo, следующих за этими шаблонами:
http://vimeo.com/*
http://vimeo.com/channels/*/*
http://vimeo.com/groups/*/videos/*
Ответ 3
Если вы хотите сначала проверить URL-адрес Vimeo:
function getVimeoId( url ) {
// Look for a string with 'vimeo', then whatever, then a
// forward slash and a group of digits.
var match = /vimeo.*\/(\d+)/i.exec( url );
// If the match isn't null (i.e. it matched)
if ( match ) {
// The grouped/matched digits from the regex
return match[1];
}
}
например.
getVimeoId('http://vimeo.com/11918221');
возвращает
11918221
Ответ 4
Я думаю, что Матильда - лучший ответ, но это неработающий проект кода, поэтому слияние его с ответом Шона Кинси получило эту рабочую версию кода:
var url = "http://www.vimeo.com/7058755"; //Or any other Vimeo url format
var regExp = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/;
var match = url.match(regExp);
if (match){
alert("id: " + match[5]);
}else{
alert("not a vimeo url");
}
Ответ 5
Конечно.
Сначала проверьте правильность/здравомыслие URL-адреса с регулярным выражением и убедитесь, что он соответствует шаблону, который вы ожидаете. (Подробнее о regex'es здесь)
Затем вам нужен этот идентификационный номер, верно? Предполагая, что он расположен в URL-адресе, вы можете извлечь это также с помощью регулярного выражения (backreference)
Все это просто управление строкой и регулярным выражением.
Ответ 6
var Vimeo =
{
get_video_id: function(url)
{
var regExp = /http(s)?:\/\/(www\.)?vimeo.com\/(\d+)(\/)?(#.*)?/
var match = url.match(regExp)
if (match)
return match[3]
},
get_video_url: function(id)
{
return 'https://vimeo.com/' + id
}
}
Ответ 7
function getVimeoId(url) {
var m = url.match(/^.+vimeo.com\/(.*\/)?([^#\?]*)/);
return m ? m[2] || m[1] : null;
}
console.log(getVimeoId("http://vimeo.com/54178821"));
console.log(getVimeoId("http://vimeo.com/channels/nudiecutie/57383513"));
Ответ 8
Мое решение Javascript:
function vimeo_parser(url){
// var regExp = /http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;
var regExp = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/;
var match = url.match(regExp);
return (match&&match[5])? match[5] : false;
}
Мое машинописное решение для угловых 8:
vimeo_parser(url){
// var regExp = /http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;
var regExp = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/;
var match = url.match(regExp);
return (match&&match[5])? match[5] : false;
}