自 2016 年以来,@Martin Ender 表示 已不再是最新的
因此这里有一个API解决方案:(无需正则表达式,仅使用 API 调用并保证安全!)
jQuery:
function GetVimeoIDbyUrl(url) {
var id = false;
$.ajax({
url: 'https://vimeo.com/api/oembed.json?url='+url,
async: false,
success: function(response) {
if(response.video_id) {
id = response.video_id;
}
}
});
return id;
}
压缩:
function GetVimeoIDbyUrl(e){var i=!1;return $.ajax({url:"https://vimeo.com/api/oembed.json?url="+e,async:!1,success:function(e){e.video_id&&(i=e.video_id)}}),i}
纯/本地JS:(IE9+和现代浏览器)
function GetVimeoIDbyUrl(url) {
var id = false;
var request = new XMLHttpRequest();
request.open('GET', 'https://vimeo.com/api/oembed.json?url='+url , false);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
var response = JSON.parse(request.responseText);
if(response.video_id) {
id = response.video_id;
}
}
};
request.send();
return id;
}
压缩:
function GetVimeoIDbyUrl(e){var t=!1,o=new XMLHttpRequest;return o.open("GET","https://vimeo.com/api/oembed.json?url="+e,!1),o.onload=function(){if(o.status>=200&&o.status<400){var e=JSON.parse(o.responseText);e.video_id&&(t=e.video_id)}},o.send(),t}
演示: https://jsbin.com/mevejoxudo/1/edit?js,output
某些类型的网址不支持问号(?): https://vimeo.com/help/contact#tech-api (告诉他们,不要告诉我哈哈:D)
url.split('/').slice(-1)[0].split('?')[0]
,还是需要用正则表达式? - Yoshi