Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 如何将此字符串拆分为块_Javascript - Fatal编程技术网

Javascript 如何将此字符串拆分为块

Javascript 如何将此字符串拆分为块,javascript,Javascript,我有一个字符串,看起来像这样(字幕文件): 我希望它变成这样的数组(长度为3): 第一个数组项是段落编号 第二个数组项是副标题的时间 第三个数组项是文本内容 这是我尝试过的,但我没有得到更多 //我插入\n以充当换行符。 var string=“1\n00:00:27560-->00:00:29990\nhandlingen 19:5\n \“En-toen-zij dit-hoorden”; //我没有得到比这更进一步的东西:/ var chunks=string.split('\n')

我有一个
字符串
,看起来像这样(字幕文件):

我希望它变成这样的
数组
(长度为3):

  • 第一个数组项是段落编号
  • 第二个数组项是副标题的时间
  • 第三个数组项是文本内容
这是我尝试过的,但我没有得到更多

//我插入\n以充当换行符。
var string=“1\n00:00:27560-->00:00:29990\nhandlingen 19:5\n \“En-toen-zij dit-hoorden”;
//我没有得到比这更进一步的东西:/
var chunks=string.split('\n');

console.log(chunks);
这是标准字符串吗?如果是,为什么不拆分它,然后将数组的最后两个元素组合在一起,存储在一个变量中,然后删除索引2中的最后两个元素,然后将变量添加到数组中

//我插入\n以充当换行符。
var string=“1\n00:00:27560-->00:00:29990\nhandlingen 19:5\n \“En-toen-zij dit-hoorden”;
//我没有得到比这更进一步的东西:/
const[id,timestamp,whatever2]=string.split(“\n”);
变量数组=[
身份证件
时间戳,
随便什么
]

console.log(数组)是否是标准字符串,就像字符串将始终具有相同类型的数据一样?如果是,为什么不将其拆分,然后将数组的最后两个元素组合在一起并存储在变量中,然后删除索引2、3处的最后两个元素,然后将变量添加到数组中

//我插入\n以充当换行符。
var string=“1\n00:00:27560-->00:00:29990\nhandlingen 19:5\n \“En-toen-zij dit-hoorden”;
//我没有得到比这更进一步的东西:/
const[id,timestamp,whatever2]=string.split(“\n”);
变量数组=[
身份证件
时间戳,
随便什么
]

console.log(array);
这就是你的意思吗?可能有更好的方法,但应该可以

var string=“1\n00:00:27560-->00:00:29990\nhandlingen 19:5\n \“En-toenzij dit hoorden”;
var chunks=string.split('\n',2);
chunks[2]=string.substr(chunks[0].length+chunks[1].length+2,string.length);
//.替换(/\n/,“”);可选择的
console.log(chunks[0]);
log(块[1]);

log(块[2])这就是你的意思吗?也许有更好的方法,但这应该行得通

var string=“1\n00:00:27560-->00:00:29990\nhandlingen 19:5\n \“En-toenzij dit hoorden”;
var chunks=string.split('\n',2);
chunks[2]=string.substr(chunks[0].length+chunks[1].length+2,string.length);
//.replace(/\n/,“”);可选
console.log(chunks[0]);
log(块[1]);

console.log(chunks[2]);
我不久前碰巧编写了一个SRT子文件解析器。运行代码段查看结果,您感兴趣的函数是
parseSub
parseSubs

函数parseSub(sub){
sub=sub.split(/\r*\n/);
变量line1=sub[0],
line2=sub[1]。拆分(/\s*-->\s*/),
开始=第2行[0],
结束=第2行[1],
text=sub.slice(2).连接(“”);
返回{
索引:parseInt(第1行),
从:开始,,
致:完,
文本:文本
};
}
函数parseSubs(fileText){
返回fileText.trim().split(/\r*\n\s+/).map(函数(子文本){
返回parseSub(subtext);
});
}
var subtext=document.getElementById('subs')
subtext.textContent=JSON.stringify(parseSubs(subtext.textContent),null,2);
1
00:00:00,800 --> 00:00:04,620
德韦弗先生,我马上就要假释了。杰科特和斯米特先生。
2.
00:00:04,620 --> 00:00:09,220
你的名字是:médiocrité,联合体'd'unité',
3.
00:00:09,220 --> 00:00:14,340
这是一个很好的选择。这是北弗吉尼亚州职业生涯的一部分。
4.
00:00:14,340 --> 00:00:16,000
哦,这是一个很好的解释,

我不久前碰巧编写了一个SRT子文件解析器。运行代码段查看结果,您感兴趣的函数是
parseSub
parseSubs

函数parseSub(sub){
sub=sub.split(/\r*\n/);
变量line1=sub[0],
line2=sub[1]。拆分(/\s*-->\s*/),
开始=第2行[0],
结束=第2行[1],
text=sub.slice(2).连接(“”);
返回{
索引:parseInt(第1行),
从:开始,,
致:完,
文本:文本
};
}
函数parseSubs(fileText){
返回fileText.trim().split(/\r*\n\s+/).map(函数(子文本){
返回parseSub(subtext);
});
}
var subtext=document.getElementById('subs')
subtext.textContent=JSON.stringify(parseSubs(subtext.textContent),null,2);
1
00:00:00,800 --> 00:00:04,620
德韦弗先生,我马上就要假释了。杰科特和斯米特先生。
2.
00:00:04,620 --> 00:00:09,220
你的名字是:médiocrité,联合体'd'unité',
3.
00:00:09,220 --> 00:00:14,340
这是一个很好的选择。这是北弗吉尼亚州职业生涯的一部分。
4.
00:00:14,340 --> 00:00:16,000
哦,这是一个很好的解释,

在@Tyblitz和@JaredT给出的答案的帮助下,我设法解决了这个问题。使用
.slice()
.join()

//我插入\n以充当换行符。
var string=“1\n00:00:27560-->00:00:29990\nhandlingen 19:5\n \“En-toen-zij dit-hoorden”;
//我没有得到比这更进一步的东西:/
var chunks=string.split('\n');
var数组=[];
array.push(
chunks.slice(0,1).join(),
chunks.slice(1,2).join(),
chunks.slice(2,chunks.length).join()
);

console.log(数组)在@Tyblitz和@JaredT给出的答案的帮助下,我设法解决了这个问题。使用
.slice()
.join()

"1\n00:00:27,560 --> 00:00:29,990\nHandelingen 19:5\n\"En toen zij dit hoorden",
var array = [
    "1",
    "00:00:27,560 --> 00:00:29,990",
    "Handelingen 19:5 \"En toen zij dit hoorden"
]