如何從JavaScript中的Vimeo URL解析ID?使用JavaScript解析Vimeo ID?
URL將由用戶輸入,因此我需要檢查他們是否以正確的格式輸入了該URL。
我需要這個ID,以便我可以使用他們簡單的API來檢索視頻數據。
如何從JavaScript中的Vimeo URL解析ID?使用JavaScript解析Vimeo ID?
URL將由用戶輸入,因此我需要檢查他們是否以正確的格式輸入了該URL。
我需要這個ID,以便我可以使用他們簡單的API來檢索視頻數據。
至於Vimeo的視頻的網址是由http://vimeo.com/
其次是數字ID組成,你可以做以下
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");
}
當然。
您應該首先使用正則表達式檢查URL的有效性/完整性,並確保它與您期望的模式相匹配。 (更多關於regex'es here)
接下來你需要這個ID號碼吧?假設它位於URL中,那麼也可以使用正則表達式提取它(backreference)
這些都基本上是字符串和正則表達式處理。
我需要讀入正則表達式,謝謝你的鏈接。 – Tom 2010-05-27 07:01:40
如果你想檢查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
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
}
}
regExp = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/
parseUrl = regExp.exec url
return parseUrl[5]
這適用於所有有效的Vimeo網址,其中f ollows這些模式:
http://vimeo.com/*
http://vimeo.com/channels/*/*
http://vimeo.com/groups/*/videos/*
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"));
我覺得明德的是最好的答案,但它是一個非工作守則草案,所以肖恩·金賽的答案合併它我們得到這個工作代碼版本:
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");
}
以及「www。」是什麼? – myfreeweb 2010-05-26 20:47:47
www現在也被允許 – 2010-05-26 21:01:37
感謝這對我想要做的事很好。 – Tom 2010-05-27 07:02:24