javascript - 如何在 javascript 中解析 Dailymotion 视频网址

标签 javascript jquery regex string-parsing

我想解析 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/

相关文章:

javascript - 根据 nuxt.config.js 中的服务器创建动态环境变量

javascript - 使用鼠标单击获取 X/Y 坐标

jquery - Bootstrap 3 中的数字向上和向下(微调控件)

ios - 在 swift 中部分匹配字符串与正则表达式

javascript - 如何使用 Promise 为函数编写单元测试

javascript - 将第二个子导航添加到 Accordion 样式菜单

javascript - scrollintoview 在 chrome 版本>=81 中不起作用。行为平稳没有发生

JavaScript、jQuery 和 'this' : what's going on here?

python - python 正则表达式中的多个负向后断言?

java - 正则表达式:交替字符/连续数字