我正在尝试从以下URL中提取Vine ID:

https://vine.co/v/Mipm1LMKVqJ/embed

我正在使用此正则表达式:
/v/(.*)/

并在此处进行测试:http://regexpal.com/

...但是它与V匹配并以“/”结尾。我如何才能获得“Mipm1LMKVqJ”,在Node中执行此操作的最干净方法是什么?

最佳答案

您需要引用第一个匹配组才能仅打印匹配结果。

var re = new RegExp('/v/(.*)/');
var r  = 'https://vine.co/v/Mipm1LMKVqJ/embed'.match(re);
if (r)
    console.log(r[1]); //=> "Mipm1LMKVqJ"

注意:如果网址经常更改,建议您使用*?防止比赛中出现贪婪感。

虽然从下面的URL,也许考虑分裂。
var r = 'https://vine.co/v/Mipm1LMKVqJ/embed'.split('/')[4]
console.log(r); //=> "Mipm1LMKVqJ"

07-27 22:10