Показать сообщение отдельно
  #5 (permalink)  
Старый 02.04.2013, 00:06
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

var END = "inf";
var START = "•";
var a1 = document.getElementsByTagName('p')[0].innerHTML;
var a2 = a1.split( /(\s+|\d+|\:|\-)/ );
var res = [], a3, numbs = [], teams = [], autor;
//for test
var res2 = {};

while ( a2.length ) {
	a3 = a2.shift().trim();
	if ( !a3 || a3 === START ) continue;
	if ( a2[ 0 ].trim() === "." ) {  
		while ( a2[ 0 ] !== END ) {
			a3 += a2.shift();
		}
		a3 += a2.shift();
		autor = a3.match( /\d{2}\.\d{2}\.\d{2} \d{2}\:\d{2}\s(.*)\sПравка ip inf$/ ).slice( 1 );
		res.push( autor );
		if ( teams.length !== numbs.length || teams.length & 1 ) throw new Error("Oops;)");
		while ( teams.length ) {
			res.push( [ teams.shift(), teams.shift(), numbs.shift(), numbs.shift() ] );
		}
		//for test
		res2[ autor ] = res.slice( -1 ).pop();
	} else if ( !isNaN( +a3 ) ) {
		numbs.push( +a3 );
	} else if ( a3 != ":" && a3 != "-" ) {
		teams.push( a3.replace(/^\.|\.$/g, "") );
	}
}

console.log( res2 );
Ответить с цитированием