欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS解析提取LRC格式的歌词

程序员文章站 2022-06-21 15:08:08
...

解析提取lrc格式的歌词

[ar:王菲]
[ti:匆匆那年]
[00:00.51]王菲 - 匆匆那年
[00:01.79]作词:林夕
[00:02.61]作曲:梁翘柏
[00:28.64]匆匆那年我们
[00:29.92]究竟说了几遍
[00:31.55]再见之后再拖延
[00:34.25]可惜谁有没有
[00:35.67]爱过不是一场
[00:37.11]七情上面的雄辩
[00:39.90]匆匆那年我们
[00:41.33]一时匆忙撂下
[00:42.76]难以承受的诺言
[00:45.49]只有等别人兑现
[00:50.87]不怪那吻痕
[00:53.23]还没积累成茧
[00:56.86]拥抱着冬眠
[00:58.91]也没能羽化再成仙
[01:02.41]不怪这一段情
[01:04.82]没空反复再排练
[01:08.02]是岁月宽容恩赐
[01:11.85]反悔的时间
[01:18.84]如果再见不能红着眼
[01:21.87]是否还能红着脸
[01:24.62]就像那年匆促
[01:26.28]刻下永远一起
[01:27.77]那样美丽的谣言
[01:30.02]如果过去还值得眷恋
[01:33.08]别太快冰释前嫌
[01:35.89]谁甘心就这样
[01:38.66]彼此无挂也无牵
[01:41.56]我们要互相亏欠
[01:47.19]要不然凭何怀缅
[01:58.75]匆匆那年我们
[02:00.03]见过太少世面
[02:01.52]只爱看同一张脸
[02:04.20]那么莫名其妙
[02:05.68]那么讨人欢喜
[02:07.17]闹起来又太讨厌
[02:10.15]相爱那年活该
[02:11.27]匆匆因为我们
[02:12.81]不懂顽固的诺言
[02:15.48]只是分手的前言
[02:21.16]不怪那天太冷
[02:23.72]泪滴水成冰
[02:26.79]春风也一样
[02:28.78]没吹进凝固的照片
[02:32.36]不怪每一个人
[02:34.93]没能完整爱一遍
[02:37.68]是岁月善意落下
[02:41.77]残缺的悬念
[02:48.90]如果再见不能红着眼
[02:51.71]是否还能红着脸
[02:54.79]就像那年匆促
[02:56.17]刻下永远一起
[02:57.50]那样美丽的谣言
[02:59.90]如果过去还值得眷恋
[03:03.24]别太快冰释前嫌
[03:05.85]谁甘心就这样
[03:08.65]彼此无挂也无牵
[03:11.17]如果再见不能红着眼
[03:14.24]是否还能红着脸
[03:17.01]就像那年匆促
[03:18.54]刻下永远一起
[03:20.03]那样美丽的谣言
[03:22.55]如果过去还值得眷恋
[03:25.44]别太快冰释前嫌
[03:28.16]谁甘心就这样
[03:31.18]彼此无挂也无牵
[03:33.89]我们要互相亏欠
[03:39.66]我们要藕断丝连

将lrc歌词提取存放到数组里面

function lyrics(lrc){
    var lrc = String(this.songList.lrc);
    if(lrc.length==0) return;
    var lyricstxt = []; //存放歌词
    var lrcs = lrc.split('\n');//用回车拆分成数组
    for(var i in lrcs) {//遍历歌词数组
        lrcs[i] = lrcs[i].replace(/(^\s*)|(\s*$)/g, ""); //去除前后空格
        var t = lrcs[i].substring(lrcs[i].indexOf("[") + 1, lrcs[i].indexOf("]"));//取[]间的内容
        var s = t.split(":");//分离:前后文字
        if(!isNaN(parseInt(s[0]))) { //是数值
            var arr = lrcs[i].match(/\[(\d+:.+?)\]/g);//提取时间字段,可能有多个
            var start = 0;
            for(var k in arr){
                start += arr[k].length; //计算歌词位置
            }
            var content = lrcs[i].substring(start);//获取歌词内容
            lyricstxt.push(content);
        }
    }
    return lyricstxt;
}

返回后的数组:

0: "王菲 - 匆匆那年"
1: "作词:林夕"
2: "作曲:梁翘柏"
3: "匆匆那年我们"
4: "究竟说了几遍"
5: "再见之后再拖延"
6: "可惜谁有没有"
7: "爱过不是一场"
8: "七情上面的雄辩"
9: "匆匆那年我们"
10: "一时匆忙撂下"
11: "难以承受的诺言"
12: "只有等别人兑现"
13: "不怪那吻痕"
14: "还没积累成茧"
15: "拥抱着冬眠"
16: "也没能羽化再成仙"
17: "不怪这一段情"
18: "没空反复再排练"
19: "是岁月宽容恩赐"
20: "反悔的时间"
21: "如果再见不能红着眼"
22: "是否还能红着脸"
23: "就像那年匆促"
24: "刻下永远一起"
25: "那样美丽的谣言"
26: "如果过去还值得眷恋"
27: "别太快冰释前嫌"
28: "谁甘心就这样"
29: "彼此无挂也无牵"
30: "我们要互相亏欠"
31: "要不然凭何怀缅"
32: "匆匆那年我们"
33: "见过太少世面"
34: "只爱看同一张脸"
35: "那么莫名其妙"
36: "那么讨人欢喜"
37: "闹起来又太讨厌"
38: "相爱那年活该"
39: "匆匆因为我们"
40: "不懂顽固的诺言"
41: "只是分手的前言"
42: "不怪那天太冷"
43: "泪滴水成冰"
44: "春风也一样"
45: "没吹进凝固的照片"
46: "不怪每一个人"
47: "没能完整爱一遍"
48: "是岁月善意落下"
49: "残缺的悬念"
50: "如果再见不能红着眼"
51: "是否还能红着脸"
52: "就像那年匆促"
53: "刻下永远一起"
54: "那样美丽的谣言"
55: "如果过去还值得眷恋"
56: "别太快冰释前嫌"
57: "谁甘心就这样"
58: "彼此无挂也无牵"
59: "如果再见不能红着眼"
60: "是否还能红着脸"
61: "就像那年匆促"
62: "刻下永远一起"
63: "那样美丽的谣言"
64: "如果过去还值得眷恋"
65: "别太快冰释前嫌"
66: "谁甘心就这样"
67: "彼此无挂也无牵"
68: "我们要互相亏欠"
69: "我们要藕断丝连"

参考:https://blog.csdn.net/fenglin247/article/details/86674646