Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript String.split()返回空数组_Javascript_Jquery_Parsing_Split_Srt - Fatal编程技术网

Javascript String.split()返回空数组

Javascript String.split()返回空数组,javascript,jquery,parsing,split,srt,Javascript,Jquery,Parsing,Split,Srt,我正在寻找解析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], m

我正在寻找解析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);

有人能帮我吗?

split方法中的字符串/(?:^ |\n\n)\d+\n | \n+$/g是一个字符串。你应该阅读更多关于它的内容,以了解你想要达到的目标。@AmanB谢谢!这就是我想要的:)