返回javascript中regex字符串的一部分

returning part of regex string in javascript

本文关键字:一部分 字符串 regex javascript 返回      更新时间:2024-05-15

我想使用regex获取youtube视频的视频id。

我有以下正则表达式:

var VideoID = inputstring.match(/watch'?v=[A-Z,a-z,0-9]+($|'&)/);

这很好用。例如,如果我输入:

https://www.youtube.com/watch?v=prHVlkFM9oc&index=9&list=RDxEwgEw3k6UA

它返回这个:

watch?v=prHVlkFM9oc&

但我只想要正则表达式的[A-Z,A-Z,0-9]+部分(上面代码中的prHVlkFM9oc)。

我该怎么得到这个?在regex返回后,我可以从一开始就去掉9个字符,但这应该没有必要。

只需使用括号( )即可捕获要捕获的部分:

var match = inputstring.match(/watch'?v=([A-Za-z0-9]+)($|&)/);
// returns ["watch?v=prHVlkFM9oc&", "prHVlkFM9oc", "&"]

现在您的结果在match[1]中;

您可以在这里使用捕获的组,并获取结果数组的第一个索引:

var VideoID = ( inputstring.match(/watch'?v=([^&]+)/) || ['', ''])[1];
//=> prHVlkFM9oc

好吧,如果您对VideoId变量满意,您可以执行以下操作:var parts=VideoId.split("=");因此您可以将该部件作为部件[1]