Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка без ошибки. Не работает метод split (https://javascript.ru/forum/misc/40679-oshibka-bez-oshibki-ne-rabotaet-metod-split.html)

Artyom 15.08.2013 12:29

Ошибка без ошибки. Не работает метод split
 
Здравствуйте.

Столкнулся с необъяснимым поведением моего скрипта. Ситуация такова - есть форма для отправки новостей. В форму вставляется новость, скрипт должен разобрать эту новость и привести ее в нужный вид. Собственно, вот пример кода:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<a href="javascript: function makeAexru() {
	var news = document.getElementsByName('newss')[0];
	var header = document.getElementsByName('header')[0],
	announce = document.getElementsByName('anons')[0],
	source;
	var massive = news.value.split('\n');
	
	source = document.getElementsByName('source')[0];
	source.value = 'AEX.RU';

	header.value = massive[0];
	massive.splice(0, 1);

	for (;;) {
		if (massive[0].indexOf(', AEX.RU –  ') == -1) {
			massive.splice(0, 1);
		} else {
			break;
		}
	}

	massive[0] = massive[0].slice(massive[0].indexOf(', AEX.RU –  ') + 12);

	for (var i = 0; i < massive.length; i++) {
		if (massive[i] == '' || massive[i] == '  ' || massive[i] == '\t' || massive[i] == '\t\t\t\t') {
			massive.splice(i, 1);
		}
	}

	announce.value = massive[0].slice(0, massive[0].indexOf('.')+1);

	news.value = massive.join('\n\n');
}

makeAexru();">AEX.RU</a><br>

<input name="header"><br>
<textarea name="anons"></textarea><br>
<textarea name="newss">Пять авиарейсов из Стамбула в Германию были задержаны из-за сообщения о бомбе на борту самолета
				

увеличить
Международный аэропорт имени Ататюрка
Фото с сайта uletaika.ru

	


 15 августа, AEX.RU – Пять авиарейсов из Стамбула в Германию были отложены из-за сообщения о заложенной на борту самолета авиакомпании Turkish Airlines бомбе, передает ИТАР-ТАСС со ссылкой на местное телевидение.

 Полиция и службы безопасности международного аэропорта имени Ататюрка в Стамбуле провели поиски взрывного устройства на пяти пассажирских самолетах авиакомпании, взрывное устройство не обнаружено.

 Информация о возможном наличии на борту лайнеров бомбы была получена в среду вечером.</textarea><br>
<input name="source">
</body>
</html>


В общем, весь цимес ситуации в том, что со львиной долей новостей скрипт работает как нужно, но иногда, как в случае с этой новостью - вылезает странная ошибка. Почему-то split не отрабатывает как нужно, и не создает массив. В чем дело - ума не приложу, подскажите, куда копать-то...

рони 15.08.2013 13:00

Artyom,
потому что строка 22 ненаходя шаблон уничтожает массив --- ', AEX.RU – ' такой строки нет даже в 56 строке -- надеюсь сами найдёте излишек.

Artyom 15.08.2013 13:29

Чёрт, а ведь и правда, там не хватает пробела. Совершенно не подумал о том, что после ошибки massive.length == 0 не потому, что не отработал как нужно split, а потому, что массив уже стёрся бесконечным циклом... Категорически благодарен, уважаемый!

bes 15.08.2013 20:28

Цитата:

Сообщение от Artyom
Не работает метод split

каждый день свежий выпуск набора тем, искренне утверждающих, что основные конструкции javascript ... (внимание ... пауза) ... НЕ РАБОТАЮТ
да что за язык-то такой, работать не хочет, совсем уже обленился с этими высокими технологиям :D


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