String.split () возвращает пустой массив - PullRequest
0 голосов
/ 26 мая 2018

Я искал файл SRT и нашел какую-то функцию с помощью .split (), но я получил пустой массив ...

Я думаю, что проблема связана с моим синтаксисом SRT, но я не понимаю, что / (?: ^ | \ N \ n) \ d + \ n | \ n + $ / g означает внутри функции .split ().

Это функции, которые я нашел:

function srtTimeToSeconds(time) {
  var match = time.match(/(\d\d):(\d\d):(\d\d),(\d\d\d)/);
  var hours        = +match[1],
      minutes      = +match[2],
      seconds      = +match[3],
      milliseconds = +match[4];

  return (hours * 60 * 60) + (minutes * 60) + (seconds) + (milliseconds / 1000);
}

function parseSrtLine(line) {
  var match = line.match(/(\d\d:\d\d:\d\d,\d\d\d) --> (\d\d:\d\d:\d\d,\d\d\d)\n(.*)/m);

  return {
    start: srtTimeToSeconds(match[1]),
    end:   srtTimeToSeconds(match[2]),
    text:  match[3].trim()
  };
}

function parseSrt(srt) {
  var lines = srt.split(/(?:^|\n\n)\d+\n|\n+$/g).slice(1, -2);

  return $.map(lines, parseSrtLine);
}

Это моя строка SRT:

const mySRT =
"0\
00:00:01,414 --> 00:00:03,613\
All the single ladies\
1\
00:00:03,805 --> 00:00:05,904\
All the single ladies\
2\
00:00:06,118 --> 00:00:08,717\
All the single ladies\"

Это мой код Javascript:

const subtitles = parseSrt(mySRT);
console.log(subtitles);

Может кто-нибудь помочь мне, пожалуйста?

...