首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery解析youtube输入链接并获取youtube ID?

使用jquery解析youtube输入链接并获取youtube ID?
EN

Stack Overflow用户
提问于 2011-09-29 16:23:05
回答 3查看 2.9K关注 0票数 3

我知道很多人问了很多这样的问题,但不幸的是我不能解决我的问题。

我在我的文本区域编辑器中有以下代码来输入一个youtube链接:

代码语言:javascript
复制
{name:'youtube', key:'Y', replaceWith:'[youtube][![Youtube video Url]!][/youtube]'},

它将要求在弹出窗口中提供youtube视频url,然后将url放在youtube和/youtube之间。

我想有一个youtube解析器添加到它,然后如果成员把youtube网址,它将解析网址,并获得youtube视频ID和输入它在文本区域如下:

youtube ID /youtube

提前感谢您的帮助。

EN

回答 3

Stack Overflow用户

发布于 2011-09-29 16:31:30

代码语言:javascript
复制
function getVideoId(url){
    if(url.indexOf('?') === -1)
        return null;
    var query = decodeURI(url).split('?')[1];
    var params = query.split('&');      
    for(var i=0,l = params.length;i<l;i++)
        if(params[i].indexOf('v=') === 0)
            return params[i].replace('v=','');
    return null;
}

  var url = "http://www.youtube.com/watch?v=yV3i6OoiR4w&feature=BFa&list=PL4A312BE02BA06BB7&lf=bf_play";
  alert(getVideoId(url));

更新:另一种解决方案是使用正则表达式:

代码语言:javascript
复制
var url = "http://www.youtube.com/watch?v=yV3i6OoiR4w&feature=BFa&list=PL4A312BE02BA06BB7&lf=bf_play";
var videoUrl = url.replace(/^.*?(\?|&)(v=([^&]+)).*$/i,'$3');
票数 5
EN

Stack Overflow用户

发布于 2011-10-07 13:31:30

有一个新的缩短URL格式的youtube网址的...下面是一个更新的脚本,可以同时支持这两种类型。

代码语言:javascript
复制
function getVideoId(url){
    if(url.indexOf('?') != -1 ) {
        var query = decodeURI(url).split('?')[1];
        var params = query.split('&');
        for(var i=0,l = params.length;i<l;i++)
            if(params[i].indexOf('v=') === 0)
                return params[i].replace('v=','');
    } else if (url.indexOf('youtu.be') != -1) {
        return decodeURI(url).split('youtu.be/')[1];
    }
    return null;
}
var urlLONG = "http://www.youtube.com/watch?v=UF8uR6Z6KLc&feature=feedlik";
var urlSHORT = "http://youtu.be/UF8uR6Z6KLc";
alert(getVideoId(urlLONG));
alert(getVideoId(urlSHORT));

附言:我是一个flash开发人员,只在AS3中测试过,但像这样的简单东西在两种语言中是相同的。如果您想在AS3中使用它,只需将警报()与跟踪()互换即可。

祝你编码愉快!

票数 5
EN

Stack Overflow用户

发布于 2016-12-10 06:17:13

代码语言:javascript
复制
function getYoutubeId(str){
   if(str.indexOf('youtube.com/') != -1 || str.indexOf('youtu.be/') != -1){
      var idStr = str.match(/([\&|\?]v\=|youtu\.be\/)([^\&\/\?]*)/);
      if(typeof(idStr[2]) != 'undefined'){
         return idStr[2]; 
      };
   };
   return null;
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7594427

复制
相关文章

相似问题

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