如何用Regex获取Vimeo的videoId?

时间:2016-06-18 09:39:14

标签: javascript regex

我尝试通过Javascript Regex获取Vimeo视频的ID。但是,输出将为:http://vimeo.com/169473112,169473112

如何在逗号后访问所有内容? https://jsfiddle.net/v9y4a0zo/

var videoId ='http://vimeo.com/169473112';
var REGEX = /vimeo.*(?:\/|clip_id=)([0-9a-z]*)/i;
var $body = document.querySelector('body');

var parsed = videoId.match(REGEX) + '<br />';
$body.innerHTML += parsed;

2 个答案:

答案 0 :(得分:2)

你可以exec()正则表达式,然后获得第二场比赛并显示它,如下所示:

var videoId ='http://vimeo.com/169473112';
var regExp = /vimeo.*(?:\/|clip_id=)([0-9a-z]*)/i;
var $body = document.querySelector('body');

var parsed = regExp.exec(videoId);
$body.innerHTML += parsed[1] + '<br />';

在此JSFiddle中查看。

顺便说一句,如果您不想更改代码那么多,您可以随时执行此操作:

var videoId ='http://vimeo.com/169473112';
var REGEX = /vimeo.*(?:\/|clip_id=)([0-9a-z]*)/i;
var $body = document.querySelector('body');

var parsed = videoId.match(REGEX)[1] + '<br />';
$body.innerHTML += parsed;

住在这个JSFiddle

整个问题围绕这样一个事实,即你得到整个比赛列表,其中包括原始字符串,因此如果你得到第二场比赛,你将获得你想要的部分。

答案 1 :(得分:1)

VideoId.match返回数组对象,因此您的ID首先是索引:

var parsed = videoId.match(regExp)[1] + '<br />';

但是你应该测试一下,如果这个索引存在(如果链接有效)。 :)