簡體   English   中英

如何檢查字符串是否包含使用JavaScript的有效vimeo網址?

[英]How to check if the string contains a valid vimeo url usng javascript?

如何使用javascript檢查字符串是否包含有效的vimeo url?

示例: https : //vimeo.com/23374724是有效的網址。

嘗試使用正則表達式嗎?

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

如果以協議開頭,則應為“ http://”或“ https://”。 然后可以選擇使用“ www。”。 然后輸入“ vimeo.com/”。 然后有一系列數字。

由您決定需要什么並使其可選。 我會認為除“ www”外的所有內容。 應該是必需的,但是我不確定您正在接收/測試的輸入。 要使其成為必需,請刪除? 來自特定組( ?緊跟其影響的組)。

確切地說,我不知道什么是“有效的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位數字的序列,后跟任意零寬度的單詞邊界或另一個正斜杠。

不要依賴Regex,因為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
  }
});

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

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

如果需要,將在第1組中捕獲視頻的ID。 您可以在debuggex上看到它的運行情況

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM