Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите со split (https://javascript.ru/forum/misc/37171-pomogite-so-split.html)

dima*** 10.04.2013 12:40

помогите со split
 
Почему при b1[i]= b1[i].split(/\n/),b1[0][0]-пусто?Объясните пожалуйста...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<body>

<p>
• Самашки - Вайнах 1:4
Берд - Лидер 2:3
ЧГУ - Низам 1:2
Родник - Авангард 2:1
Тайфун - Динамо 0:2
Казбек-Горец 0:2
Спартак - Мартан 2:1
ЧГПИ - Даймохк 1:1
Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 

• Самашки-Вайнах 1:3
Берд-Лидер 0:2
ЧГУ-Низам 2:2
Родник-Авангард 1:2
Тайфун-Динамо 1:3
Казбек-Горец 0:4
Спартак-Мартан 0:0
ЧГПИ-Даймохк 1:5
Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 

• Самашки-Вайнах 1-1
Берд-Лидер 1-3
ЧГУ-Низам 1-2
Родник-Авангард 2-3
Тайфун-Динамо 1-3
Казбек-Горец 1-4
Спартак-Мартан 2-1
ЧГПИ-Даймохк 1-3
Марта-Сунжа 2-1 05.11.12 22:58 anzor95 Правка ip inf 


</p>
<script>

a1=document.getElementsByTagName('p')[0].innerHTML;

b1=a1.split(/\s\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s.+\sПравка\sip\sinf/); 
for (i=0;i<b1.length; i++) {
//document.write(b1[i]+'<br>');
//}

b1[i]= b1[i].split(/\n/);
for (j=0;j<b1[i].length; j++) {
document.write(b1[0][0]+'<br>');
}}

//reg5=/\d|[А-Яа-я]+/igm;

//b1[i][j+1]= b1[i][j+1].match(reg5);
//document.write(b1[i][j+1][k]+'<br>');
//}}}

</script>
</body>
</html>

rgl 10.04.2013 13:58

Потому что у вас параграф начинается с перевода строки.
Замените
<p>
• Самашки - Вайнах 1:4
на
<p>• Самашки - Вайнах 1:4
а правильнее будет отслеживать пустые элементы и игнорировать их. Так желательно делать всегда, когда делаете split с RegExp, т.к. результат может зависеть от версии браузера:
http://javascript.ru/forum/misc/3600...tml#post238235

dima*** 10.04.2013 14:22

rgl -спасибо огромное.Гениально!
Значит нужно делать проверку на пустоту...

rgl 10.04.2013 14:46

Цитата:

Сообщение от dima*** (Сообщение 245239)
b1[i]= b1[i].split(/\n/);

В догонку: параметром split может быть как регулярное выражение, так и просто строка, в простых случаях можно и так
b1[i]= b1[i].split("\n");

dima*** 10.04.2013 16:12

А как правильно удалить,теперь,пустые элементы?

dima*** 10.04.2013 20:31

Так и не смог решить задачу по удалению пустых элементов.:help:

Deff 10.04.2013 20:56

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<body>

<p>
• Самашки - Вайнах 1:4
Берд - Лидер 2:3
ЧГУ - Низам 1:2
Родник - Авангард 2:1
Тайфун - Динамо 0:2
Казбек-Горец 0:2
Спартак - Мартан 2:1
ЧГПИ - Даймохк 1:1
Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 

• Самашки-Вайнах 1:3
Берд-Лидер 0:2
ЧГУ-Низам 2:2
Родник-Авангард 1:2
Тайфун-Динамо 1:3
Казбек-Горец 0:4
Спартак-Мартан 0:0
ЧГПИ-Даймохк 1:5
Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 

• Самашки-Вайнах 1-1
Берд-Лидер 1-3
ЧГУ-Низам 1-2
Родник-Авангард 2-3
Тайфун-Динамо 1-3
Казбек-Горец 1-4
Спартак-Мартан 2-1
ЧГПИ-Даймохк 1-3
Марта-Сунжа 2-1 05.11.12 22:58 anzor95 Правка ip inf 


</p>
<script>

a1=document.getElementsByTagName('p')[0].innerHTML;
a1= a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n')
alert('Начало строки:'+a1)

b1=a1.split(/\s\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s.+\sПравка\sip\sinf/); 
for (i=0;i<b1.length; i++) {
//document.write(b1[i]+'<br>');
//}

b1[i]= b1[i].split(/\n/);
for (j=0;j<b1[i].length; j++) {
document.write(b1[0][0]+'<br>');
}}

//reg5=/\d|[А-Яа-я]+/igm;

//b1[i][j+1]= b1[i][j+1].match(reg5);
//document.write(b1[i][j+1][k]+'<br>');
//}}}

</script>
</body>
</html>

Ervin 10.04.2013 21:05

var b1=a1.split(/\s\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s.+\sПравка\sip\sinf/);

for(var i = 0; i < b1.length; i++) {
   if(!b[i].replace(/\s/g, "")) {
      b1.splice(i, 1);
      i--;
   }
}

dima*** 11.04.2013 07:20

Deff и Ervin-большое спасибо!

dima*** 11.04.2013 09:14

А если с помощью обьекта?Как-то так....
Вот так пустые элементы удаляются?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<body>

<p>
• Самашки - Вайнах 1:4
Берд - Лидер 2:3
ЧГУ - Низам 1:2
Родник - Авангард 2:1
Тайфун - Динамо 0:2
Казбек-Горец 0:2
Спартак - Мартан 2:1
ЧГПИ - Даймохк 1:1
Марта - Сунжа 2:1 05.11.12 22:42 Нохчо Правка ip inf 

• Самашки-Вайнах 1:3
Берд-Лидер 0:2
ЧГУ-Низам 2:2
Родник-Авангард 1:2
Тайфун-Динамо 1:3
Казбек-Горец 0:4
Спартак-Мартан 0:0
ЧГПИ-Даймохк 1:5
Марта-Сунжа 1:2 05.11.12 22:56 ФК Орга Правка ip inf 

• Самашки-Вайнах 1-1
Берд-Лидер 1-3
ЧГУ-Низам 1-2
Родник-Авангард 2-3
Тайфун-Динамо 1-3
Казбек-Горец 1-4
Спартак-Мартан 2-1
ЧГПИ-Даймохк 1-3
Марта-Сунжа 2-1 05.11.12 22:58 anzor95 Правка ip inf 


</p>
<script>
a1=document.getElementsByTagName('p')[0].innerHTML;

b1=a1.split(/\sПравка\sip\sinf/); 
for (i=0;i<b1.length; i++) {

b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);

var autor=b1[i][0];
var text=b1[i][1];

var prognoz={};
for(key in prognoz){
prognoz[autor]=autor.push(key);
prognoz[text]=text.push(key);
}
//document.write(autor+'<br>');
//document.write(text+'<br>');
//}

var arr=prognoz.text.split(/\d/);
for(var i in arr){
document.write(arr[i]+'<br>');
}}

</script>
</body>
</html>


Почему-то по 2 раза стало выходить?


Часовой пояс GMT +3, время: 15:02.