首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用正则表达式和JS检索youtube播放列表id

如何使用正则表达式和JS检索youtube播放列表id
EN

Stack Overflow用户
提问于 2013-06-01 09:29:10
回答 4查看 1.9K关注 0票数 0

我正在尝试从youtube链接中检索播放列表ids,如下所示:

代码语言:javascript
复制
https://www.youtube.com/watch?v=hv_X327YUdI&list=SPGznEl712WelO6ZhS8lc2ssweLuQaCKld

代码语言:javascript
复制
https://www.youtube.com/playlist?list=SPGznEl712WelO6ZhS8lc2ssweLuQaCKld

并拒绝不属于youtube的链接。

因此,在这种情况下,结果将是:

代码语言:javascript
复制
SPGznEl712WelO6ZhS8lc2ssweLuQaCKld
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-02 08:44:27

这就是我最终怎么做的:

此函数用于验证链接是否来自youtube:

代码语言:javascript
复制
    function youtube_validate(url) {

        var regExp = /^(?:https?:\/\/)?(?:www\.)?youtube\.com(?:\S+)?$/;
        return url.match(regExp)&&url.match(regExp).length>0;

    }

此函数用于检索播放列表id

代码语言:javascript
复制
  //get playlist id from url
    function youtube_playlist_parser(url){

        var reg = new RegExp("[&?]list=([a-z0-9_]+)","i");
        var match = reg.exec(url);

        if (match&&match[1].length>0&&youtube_validate(url)){
            return match[1];
        }else{
            return "nope";
        }

    }    
票数 3
EN

Stack Overflow用户

发布于 2013-06-01 09:45:00

好了,我想你已经提取了链接:

代码语言:javascript
复制
var link = 'https://www.youtube.com/watch?v=hv_X327YUdI&list=SPGznEl712WelO6ZhS8lc2ssweLuQaCKld';

var reg = new RegExp("[&?]list=([a-z0-9_]+)","i");
var match = reg.exec(link);
alert(match[1]);

解释

代码语言:javascript
复制
[&?]       one of these characters
list=
(          capture group 1
 [A-Za-z0-9_]+  all characters that are in [A-Za-z0-9_], one or more times
)          close capture group 1
票数 2
EN

Stack Overflow用户

发布于 2017-11-11 20:01:46

(?:youtube.com.(?:\?|&)(?:list)=)((?!videoseries)a-zA-Z0-9_-)

(第一组)

一些播放列表id有"-“https://regexr.com/3h5gs np:

https://www.youtube.com/watch?v=ldY6WNjEmGY&list=RDw9pC-51IQ60&index=6

首先,我为我发现的德国电子音乐:>道歉

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16868181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档