Vimeo共享视频链接看起来像:
http://vimeo.com/89491724
YouTube共享视频链接看起来像:
http://youtu.be/GioRM0kU5m0
我想让人们把这个输入到我的网站,我会用他们的嵌入代码嵌入它,然后用他们的值(存储在数据库中)替换最后一个(id)部分。
我可以通过在最后一个斜杠“/”后面取最后一个值来解析这些值。如果字符串中有“vimeo”,我可以根据它们来自哪个站点。我的问题是,通过这样做,我是否向任何安全问题敞开了大门?一个人能做些什么来利用这个系统,任何人都能想到吗?
有没有可能我不知道的用于验证的库?
是的,几个月前我也有同样的问题,我做了这个函数来获取youtube和Vimeo的视频id。。
这是你的解决办法。。
function Getvideoid(videolink)
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
var match = videolink.match(regExp);
if (match && match[7].length == 11)
{
alert("youtube video id : "+ match[7]);
return;
}
regExp = "vimeo\\.com/(?:.*#|.*/videos/)?([0-9]+)";
match = videolink.match(regExp);
if(match)
{
var videoid = videolink.split('/')[videolink.split('/').length - 1];
alert("vimeo video id :"+videoid);
}
else
{
alert("Unknown url");
}
这里是JSBIN链接http://jsbin.com/zoxicoko/2/
function parseVideo(url) {
// - Supported YouTube URL formats:
// - http://www.youtube.com/watch?v=My2FRPA3Gf8
// - http://youtu.be/My2FRPA3Gf8
// - https://youtube.googleapis.com/v/My2FRPA3Gf8
// - Supported Vimeo URL formats:
// - http://vimeo.com/25451551
// - http://player.vimeo.com/video/25451551
// - Also supports relative URLs:
// - //player.vimeo.com/video/25451551
url.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
if (RegExp.$3.indexOf('youtu') > -1) {
var type = 'youtube';
} else if (RegExp.$3.indexOf('vimeo') > -1) {
var type = 'vimeo';
}
return {
type: type,
id: RegExp.$6
};
}