2013-04-08 58 views

回答

2

我不知道「有效的vimeo網址」是什麼,正是如此。如果你想讓它開始https://vimeo.com/並且後面有一個8位數字,這將做到這一點:

var myurl = "https://vimeo.com/23374724"; 
if (/https:\/\/vimeo.com\/\d{8}(?=\b|\/)/.test(myurl)) { 
    alert("matches"); 
} else { 
    alert("doesn't match") 
}; 

這是一種醜陋的,因爲所有的\/逃脫斜槓,但它所做的就是尋找我在上面提到的字符串,後跟一個8位數字的序列,後面跟着任何零寬度的字邊界或另一個正斜槓。

+0

當ID數字計數是大於8。例如,它會返回false它,你的測試網址HTTPS不起作用:// VIMEO。 com/133693532 – 2017-04-18 05:48:04

+0

如果你想要「至少8位數」而不是「完全8位數」,用'\ d {8,}'代替'\ d {8}'。 – 2017-04-18 08:39:37

5

嘗試用正則表達式嗎?

/^(http\:\/\/|https\:\/\/)?(www\.)?(vimeo\.com\/)([0-9]+)$/.test("url"); 

這應該,如果它以協議開頭,要求它是「http://」或「https://」。然後可以選擇「www。」。然後有「vimeo.com/」。然後有一系列數字。

這取決於你想要什麼,並做出選擇。我會認爲除了「www」以外的所有內容。應該是必需的,但我不確定你正在接受/測試的輸入。要做到這一點,請從特定組中刪除??出現在它所影響的組之後)。

0

您可以使用以下正則表達式:

(?:https?\:\/\/)?(?:www\.)?(?:vimeo\.com\/)([0-9]+) 

視頻的ID將在第1組中捕獲,如果你需要使用。你可以在debuggex上看到它的行動。

1

不要依靠正則表達式如Vimeo的趨向改變/更新其URL模式飄飛。截至2017年10月2日,,Vimeo支持共有六種URL方案。

https://vimeo.com/* 
https://vimeo.com/*/*/video/* 
https://vimeo.com/album/*/video/* 
https://vimeo.com/channels/*/* 
https://vimeo.com/groups/*/videos/* 
https://vimeo.com/ondemand/*/* 

而是使用他們的API來驗證vimeo URL。這是一個oEmbed(doc)API,它接受一個URL,檢查它的有效性,並返回一個包含視頻信息的對象(查看開發頁面)。雖然沒有打算,但我們可以很容易地使用它來驗證給定的URL是否來自Vimeo。

所以,用AJAX它是這樣的,

var VIMEO_BASE_URL = "https://vimeo.com/api/oembed.json?url="; 
var yourTestUrl = "https://vimeo.com/23374724"; 


$.ajax({ 
    url: VIMEO_BASE_URL + yourTestUrl, 
    type: 'GET', 
    success: function(data) { 
    if (data != null && data.video_id > 0) 
     // Valid Vimeo url 
    else 
     // not a valid Vimeo url 
    }, 
    error: function(data) { 
    // not a valid Vimeo url 
    } 
}); 
相關問題