Jed*_* Ko 3 youtube video jquery parsing
我知道很多人问这个问题很多,但不幸的是我无法解决我的问题.
我在textarea编辑器中有这个代码来输入youtube链接:
{name:'youtube', key:'Y', replaceWith:'[youtube][![Youtube video Url]!][/youtube]'},
Run Code Online (Sandbox Code Playgroud)
它会在弹出窗口中询问youtube视频网址,之后会将网址放在[youtube]和[/ youtube]之间.
我想添加一个youtube解析器然后如果成员放置youtube网址,它将解析网址并获取youtube视频ID并将其输入文本区域,如下所示:
[youtube] ID [/ youtube]
在此先感谢您的帮助 .
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));
Run Code Online (Sandbox Code Playgroud)
更新:另一个解决方案是使用正则表达式:
var url = "http://www.youtube.com/watch?v=yV3i6OoiR4w&feature=BFa&list=PL4A312BE02BA06BB7&lf=bf_play";
var videoUrl = url.replace(/^.*?(\?|&)(v=([^&]+)).*$/i,'$3');
Run Code Online (Sandbox Code Playgroud)
小智 5
youtube网址有一个新缩短的网址格式...这里是一个更新的脚本,可以容纳这两种类型.
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));
Run Code Online (Sandbox Code Playgroud)
PS我是一名Flash开发人员,只在AS3中对此进行了测试,但这样的简单内容在两种语言中都是相同的.如果你想在AS3中使用它,只需将alert()与trace()交换即可.
快乐的编码!