Я пытаюсь разобрать .srt
, но получаю внутреннюю ошибку и не могу понять, что это такое.
Вот мой код:
var subtitles;
jQuery.get('SB_LKRG-eng.srt', function(data) {
//alert(data);
function strip(s) {
return s.replace(/^\s+|\s+$/g,"");
}
srt = data.replace(/\r\n|\r|\n/g, '\n');
//alert(srt);
srt = strip(srt);
//alert(srt);
var srt_ = srt.split('\n\n');
alert(srt_);
var cont = 0;
for(s in srt_) {
st = srt_[s].split('\n');
alert(st);
if(st.length >=2) {
n = st[0];
i = strip(st[1].split(' --> ')[0]);
o = strip(st[1].split(' --> ')[1]);
t = st[2];
if(st.length > 2) {
for(j=3; j<st.length;j++)
t += '\n'+st[j];
}
subtitles[cont].number = n;
subtitles[cont].start = i;
subtitles[cont].end = o;
subtitles[cont].text = t;
//alert(subtitles[cont].start);
}
cont++;
}
});
Я могу извлечь первые 4 субтитров, а затем код останавливается и ломает exception: TypeError
, я не могу понять, почему... Вот пример файла субтитров:
1
00:00:01,000 --> 00:00:04,000
Descargados de www.AllSubs.org
2
00:00:49,581 --> 00:00:52,049
Bueno, tienes que escapar, tengo que ir a jugar
3
00:00:52,084 --> 00:00:55,178
Tengo que encontrar un día que está lleno de nada más que sol
4
00:00:55,220 --> 00:00:57,552
Crucero por la calle, moviéndose al compás
5
00:00:57,589 --> 00:01:00,683
Todos los que conoces está teniendo nada más que diversión
6
00:01:00,726 --> 00:01:03,251
Deja todo detrás de ti
7
00:01:03,295 --> 00:01:06,128
Siente esas palmeras soplan
8
00:01:06,165 --> 00:01:09,157
La gente en el norte no puede encontrar
9
00:01:09,201 --> 00:01:11,829
Están fuera de palear la nieve
10
00:01:11,870 --> 00:01:14,998
El tiempo para moverse, pero no seas lento
11
00:01:15,040 --> 00:01:17,941
En sus marcas, prepárate para ir
Часть кода взята из: http://v2v.cc/~j/jquery.srt/jquery.srt.js
Может кто-нибудь помочь мне?
Спасибо
.srt
файла (или его части)? - person hindmost   schedule 15.10.2015.srt
, спасибо! - person Sergi   schedule 15.10.2015cont++;
не должно быть внутри циклаfor
? - person Ason   schedule 15.10.2015if(st.length >=2) {
? - person Ason   schedule 15.10.2015cont++
должен быть внеif(st.length)
, потому что мне нужно одно и то же количество для каждой итерации, потому чтоsubtitles
- это массив кортежей, где внутри каждой позиции есть 4 поля, и мне нужно одно и то же число счета, чтобы записать каждое поле одной позиции , я прав? - person Sergi   schedule 15.10.2015push
вместо серий заданий - person hindmost   schedule 15.10.2015for..in
а> с массивом. Он предназначен только для объектов, а не для массивов. - person hindmost   schedule 15.10.2015cont++
находится за пределами первогоif(st.length >=2) {
, вы всегда считаете, но сохраняете вsubtitles[cont]
только тогда, когдаif(st.length >=2)
истинно. ... Обратите внимание, что я не имею в виду внутреннююif(st.length > 2) {
- person Ason   schedule 15.10.2015