如何检查字符串是否包含有效的vimeo url usng javascript?

Raj*_*mar 0 javascript regex

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

示例:https://vimeo.com/23374724是一个有效的网址.

flu*_*man 6

不要依赖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/*/*
Run Code Online (Sandbox Code Playgroud)

相反,使用他们的 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
  }
});
Run Code Online (Sandbox Code Playgroud)


Ian*_*Ian 5

试试正则表达式?

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

如果它以协议开头,则应该是"http://"或"https://".然后可选地有"www.".然后有"vimeo.com/".然后有一系列数字.

这取决于您想要的和可选的.我会认为除了"www."之外的一切.应该是必需的,但我不确定你收到/测试的输入.要使其成为必需,请?从特定组中删除(在?它影响的组之后).