2010-05-26 10 views
13

मैं जावास्क्रिप्ट में Vimeo यूआरएल से एक आईडी कैसे पार्स कर सकता हूँ?जावास्क्रिप्ट का उपयोग कर एक Vimeo आईडी पार्सिंग?

यूआरएल उपयोगकर्ता द्वारा दर्ज किया जाएगा, इसलिए मुझे यह जांचना होगा कि उन्होंने इसे सही प्रारूप में दर्ज किया है।

मुझे आईडी की आवश्यकता है ताकि मैं वीडियो डेटा पुनर्प्राप्त करने के लिए अपने सरल एपीआई का उपयोग कर सकूं।

उत्तर

18

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"); 
} 
+0

और "www।" के बारे में क्या? – myfreeweb

+0

www को अब भी –

+0

की अनुमति है धन्यवाद यह मैं जो करना चाहता हूं उसके लिए अच्छा काम करता है। – Tom

2

निश्चित रूप से।

आपको पहले रेगेक्स के साथ यूआरएल की वैधता/स्वच्छता की जांच करनी चाहिए और सुनिश्चित करें कि यह आपके द्वारा अपेक्षित पैटर्न से मेल खाता है। (regex'es here के बारे में अधिक जानकारी)

अगला आपको उस आईडी नंबर की आवश्यकता है, है ना? यह मानते हुए कि यह यूआरएल के भीतर स्थित है, आप इसे रीगेक्स (backreference)

का उपयोग करके निकालें भी कर सकते हैं यह सब मूल रूप से स्ट्रिंग और रेगेक्स हैंडलिंग है।

+0

मुझे लिंक के लिए धन्यवाद, regex में पढ़ने की जरूरत है। – Tom

6

आप 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 
2
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 
    } 
} 
14
regExp = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/ 
parseUrl = regExp.exec url 
return parseUrl[5] 

यह कर सकता है सभी मान्य Vimeo यूआरएल के लिए काम करता है जो च इन पैटर्न OLLOWS:

http://vimeo.com/*

http://vimeo.com/channels/*/*

http://vimeo.com/groups/*/videos/*

1
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")); 
1

मुझे लगता है कि मटिल्डा की सबसे अच्छी जवाब है, लेकिन यह एक गैर काम कोड मसौदा है, तो शॉन किन्से के जवाब के साथ यह विलय हमें यह कामकाजी कोड संस्करण मिलता है:

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"); 
} 
संबंधित मुद्दे