歌词匹配

 const lyricString = "[00:00.000] 作词 : 许嵩\n[00:01.000] 作曲 : 许嵩\n[00:02.000] 编曲 : 许嵩\n[00:22.240]天空好想下雨\n[00:24.380]我好想住你隔壁\n[00:26.810]傻站在你家楼下\n[00:29.500]抬起头数乌云\n[00:31.160]如果场景里出现一架钢琴\n[00:33.640]我会唱歌给你听\n[00:35.900]哪怕好多盆水往下淋\n[00:41.060]夏天快要过去\n[00:43.340]请你少买冰淇淋\n[00:45.680]天凉就别穿短裙\n[00:47.830]别再那么淘气\n[00:50.060]如果有时不那么开心\n[00:52.470]我愿意将格洛米借给你\n[00:55.020]你其实明白我心意\n[00:58.290]为你唱这首歌没有什么风格\n[01:02.976]它仅仅代表着我想给你快乐\n[01:07.840]为你解冻冰河为你做一只扑火的飞蛾\n[01:12.998]没有什么事情是不值得\n[01:17.489]为你唱这首歌没有什么风格\n[01:21.998]它仅仅代表着我希望你快乐\n[01:26.688]为你辗转反侧为你放弃世界有何不可\n[01:32.328]夏末秋凉里带一点温热有换季的颜色\n[01:41.040]\n[01:57.908]天空好想下雨\n[01:59.378]我好想住你隔壁\n[02:02.296]傻站在你家楼下\n[02:03.846]抬起头数乌云\n[02:06.183]如果场景里出现一架钢琴\n[02:08.875]我会唱歌给你听\n[02:10.974]哪怕好多盆水往下淋\n[02:15.325]夏天快要过去\n[02:18.345]请你少买冰淇淋\n[02:21.484]天凉就别穿短裙\n[02:22.914]别再那么淘气\n[02:25.185]如果有时不那么开心\n[02:27.625]我愿意将格洛米借给你\n[02:30.015]你其实明白我心意\n[02:33.327]为你唱这首歌没有什么风格\n[02:37.976]它仅仅代表着我想给你快乐\n[02:42.835]为你解冻冰河为你做一只扑火的飞蛾\n[02:48.406]没有什么事情是不值得\n[02:52.416]为你唱这首歌没有什么风格\n[02:57.077]它仅仅代表着我希望你快乐\n[03:01.993]为你辗转反侧为你放弃世界有何不可\n[03:07.494]夏末秋凉里带一点温热\n[03:11.536]\n[03:20.924]为你解冻冰河为你做一只扑火的飞蛾\n[03:26.615]没有什么事情是不值得\n[03:30.525]为你唱这首歌没有什么风格\n[03:35.196]它仅仅代表着我希望你快乐\n[03:39.946]为你辗转反侧为你放弃世界有何不可\n[03:45.644]夏末秋凉里带一点温热有换季的颜色\n"const lyricLineStrings = lyricString.split("\n")const lyricLines = []const timePattern = /\[(\d{2}):(\d{2})\.(\d{2,3})\]/for (const lyric of lyricLineStrings) {const timeString = timePattern.exec(lyric)if (!timeString) continueconst time1 = timeString[1] * 60 * 1000const time2 = timeString[2] * 1000const time3 = timeString[3].length === 3 ? timeString[3]*1: timeString[3] * 10console.log(time1, time2, time3)const time = time1 + time2 + time3const content = lyric.replace(timePattern, "").trim()lyricLines.push({time, content})}console.log(lyricLines)

js基础-小案例歌词匹配相关推荐

  1. 【Node.js学习小案例】DNS域名解析 一

    Node.js 百度百科: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/ ...

  2. node.js(node.js+mongoose小案例)_实现简单的注册登录退出

    一.前言 通过node.js基本知识对node.js基本知识的一个简单应用 1.注册 2.登录 3.退出 二.基本内容 1.项目结构搭建如图所示 2.这个小案列中用到了art-template子模板以 ...

  3. [Vue.js] 基础 -- 综合案例 -- 图书管理

    综合案例 – 图书管理 补充知识(数组相关API) 变异方法(修改原有数据) push() pop() shift() unshift() splice() sort() reverse() 替换数组 ...

  4. JS基础-开关灯案例

    要达到的效果图展示 初始状态 点击关灯之后变为 再点开灯又变为第一个状态. 整体思路:首先设置初始的状态body的背景色为白色,按钮中的文字为关灯,初始状态默认是开着灯的,然后设置一个初始的flag变 ...

  5. node.js入门小案例

    nodejs 和 Java node.js是运行在服务端的JavaScript.node.js是一个基于chrome JavaScript 运行时建立的一个平台.底层架构 是JavaScript. n ...

  6. Unity基础小案例---射击小球

    此项目有2个页面组成 第一个页面 1.看上图的退出.开始游戏,这2个按钮是Main Camera关联的Menu1脚本文件来实现的-参数(左.上.宽.高) 可以将Menu1脚本文件直接拖拽到Main C ...

  7. Hibernate基础小案例

    写一个简单的hibernate 1.导入jar包 hibernate3.jar核心+require必须引入的(6个)jar包+jba目录jar包+数据驱动包 2.写映射文件 格式:***.hbm.xm ...

  8. 【前端基础小案例】HTML+CSS实现酷狗音乐热榜效果

  9. python爬虫基础小案例, scrapy框架,思路和经验你全都有。

    目录 一.scrapy介绍 二.爬取步骤 三.代码 1.创建爬虫项目    scrapy startproject 项目名字                注意: 项目名字不能出现中文,也不能以数字开 ...

最新文章

  1. 二分图匹配匈牙利算法DFS实现
  2. iphone objective-c内存管理
  3. 《基于Node.js实现简易聊天室系列之项目前期工作》
  4. Mybatis: 返回不同实体(对象数组)
  5. Coprime Conundrum 容斥原理
  6. Exchange2003配置垃圾邮件实时黑名单RBL
  7. Eclipse安装插件的几种方式
  8. 大白菜pe解锁bitlocker_微PE工具箱 v2.1 官方版,最好用的 Win10PE 系统
  9. 通过Flume简单实现Kafka与Hive对接(Json格式)
  10. java udp 接收16进制,java udp接收16进制乱码
  11. python爬虫爬取合肥工业大学校园新闻
  12. 全新版大学英语综合教程第一册学习笔记(原文及全文翻译)——8 - Fable Of The Lazy Teenager(懒散少年的寓言)
  13. 骑行318、 2016.7.17
  14. Linux系统备份系统还原
  15. 电信运营商的三大数据域——B域,O域,M域
  16. 【中学教师资格证-教育知识与能力】简答题
  17. 用队列实现栈(Java)
  18. Git ssh 下载设置
  19. 分布式存储基础之kad
  20. Dom4j的使用(全而好的文章)

热门文章

  1. 【毕业设计】基于单片机的家庭智能监控系统 - 物联网 stm32 嵌入式
  2. Coreldraw绘制珍珠项链送给你
  3. HDFS基础知识(个人总结)
  4. Spring-StopWatch的使用
  5. 静态成员函数存在的意义
  6. Open VAS 漏扫工具的安装
  7. Tampermonkey下载安装教程及脚本分享
  8. 线程进程是怎样使用多核的
  9. 电子元器件品牌及其代理商
  10. java的类库安装在哪_Java系列学习(一)-JDK下载与安装