从youtube网址获取视图代码的正则表达式是什么?

时间:2011-10-07 15:32:54

标签: javascript regex

我只需要从youtube网址获取视图代码。 api返回的字符串看起来像这样:

http:\/\/www.youtube.com\/watch?v=XODUrTtvZks&feature=youtube_gdata_player

我需要得到这个部分:

XODUrTtvZks

从上面可以看出,有时在v =之后可能会有其他参数:

&feature=youtube_gdata_player

有时可能没有。有人可以提供在这种情况下工作的正则表达式以及如何使用javascript使用它的示例吗?

4 个答案:

答案 0 :(得分:1)

您可以使用/v=([^&]+)/并在偏移1处获得匹配。

答案 1 :(得分:0)

此代码段仅与来自youtube.com的网址匹配:

var url = 'http://www.youtube.com/watch?v=XODUrTtvZks&feature=youtube_gdata_player';
var matches = url.match(/^http[s]?:\/\/www.youtube.com\/watch\?\s*v=([^&]+)/i);

if (matches) {
    var videoID = matches[1];
    // do stuff
}

答案 2 :(得分:0)

您可以使用名为RegExr的在线工具来获取正则表达式,[http://gskinner.com/RegExr/]。

此致 拉胡尔

答案 3 :(得分:0)

此代码段来自Google自己的解析器:

function getIdFromUrl(url) {
    return /https?:\/\/(?:[a-zA_Z]{2,3}.)?(?:youtube\.com\/watch\?)((?:[\w\d\-\_\=]+&(?:amp;)?)*v(?:<[A-Z]+>)?=([0-9a-zA-Z\-\_]+))/i.exec(url)[2];
}

你可以在这里看到:

http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/ui/media/youtube.js?r=1221#246