作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想解析 Dailymotion 视频 url 以在 javascript 中获取视频 ID,如下所示:
http://www.dailymotion.com/video/x44lvd
视频编号:“x44lvd”
我想我需要正则表达式字符串来获取所有 dailymotion 视频 url 组合的视频 ID。
我找到了 YouTube 链接的 url 解析器正则表达式,它运行良好,如下所示:
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
var match = url.match(regExp);
var videoID = "";
if (match && match[7].length == 11){
videoID = match[7];
}else
alert('video not found');
有人可以给我一些关于 dailymotion 的建议吗?
最佳答案
function getDailyMotionId(url) {
var m = url.match(/^.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/);
if (m !== null) {
if(m[4] !== undefined) {
return m[4];
}
return m[2];
}
return null;
}
console.log(getDailyMotionId("http://www.dailymotion.com/video/x44lvd_rates-of-exchange-like-a-renegade_music"));
console.log(getDailyMotionId("http://www.dailymotion.com/video/x44lvd"));
console.log(getDailyMotionId("http://www.dailymotion.com/hub/x9q_Galatasaray"));
console.log(getDailyMotionId("http://www.dailymotion.com/hub/x9q_Galatasaray#video=xjw21s"));
console.log(getDailyMotionId("http://www.dailymotion.com/video/xn1bi0_hakan-yukur-klip_sport"));
同时我学习了一些正则表达式。
这是一个更新版本,它返回在文本中找到的任何 dailymotion id 的数组:
function getDailyMotionIds(str) {
var ret = [];
var re = /(?:dailymotion\.com(?:\/video|\/hub)|dai\.ly)\/([0-9a-z]+)(?:[\-_0-9a-zA-Z]+#video=([a-z0-9]+))?/g;
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
ret.push(m[2]?m[2]:m[1]);
}
return ret;
}
在这里测试 http://jsfiddle.net/18upkjaa/embedded/result/通过在文本框中输入
关于javascript - 如何在 javascript 中解析 Dailymotion 视频网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12387389/
我是一名优秀的程序员,十分优秀!