26.04.2013, 09:46
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Подскажите,пожалуйста,поче му не работает,в этом месте
Подскажите,пожалуйста,поче му не работает,в этом месте:
var reguha=/([А-Яа-я]+)([А-Яа-я]+|\d+)(\d)([А-Яа-я]+|\d+)/;
if(b1[i][0][k][1]==Number){
b1[i][0][k][l]=b1[i][0][k][l].replace(reguha,'$1,$4,$2,$3');
}
Вот весь код:
<!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 style='display:none'>
• Родник - Низам 1:1
Горец - Авангард 3:1
Гумс - Берд 2:0
Вайнах - Динамо 2:1
Лидер - Автуры 3:1
Оскар - Мартан 2:0
Марта - Даймохк 1:2
ЧГУ - Терек 3:1 19.04.13 00:11 Nohcho Правка ip inf
• Родник 1 - 1 Низам
Горец 2 - 1 Авангард
Гумс 2 - 0 Берд
Вайнах 2 - 2 Динамо
Лидер 4 - 0 Автуры
Оскар 3 - 0 Мартан
Марта 1 - 2 Даймохк
ЧГУ 1 - 2 ТЕРЕК 19.04.13 00:17 Турпал-Али Правка ip inf
• Родник 1-2 Низам
Горец 2-0 Авангард
Гумс 2-1 Берд
Вайнах 3-1 Динамо
Лидер 4-0 Автуры
Оскар 0-0 Мартан
Марта 1-2 Даймохк
ЧГУ 4-1 Терек 19.04.13 00:18 Beck-77 Правка ip inf
</p>
<script>
var a1 = document.getElementsByTagName('p')[0].innerHTML;
a1 = a1.replace(/^\s*?\n\s*|\s*?\n\s*$/img,'').split(/\s*\n\s*/).join('\n');
var b1=a1.split(/\sПравка\sip\sinf/);
for (var i=0;i<b1.length-1; i++){
b1[i]= b1[i].split(/\d{2}\.\d{2}\.\d{2}\s\d{2}\:\d{2}\s/);
document.write('<br>' + b1[i][1]+ ':'+'<br>');
for (var j=0;j<b1[i].length; j++){
b1[i][0]=b1[i][0].split(/\n/);
for (var k =0; k < b1[i][0].length; k++){
var rega = /\d|[А-Яа-я]+/ig;
b1[i][0][k]=b1[i][0][k].match(rega);
if (b1[i][0][k] != null){
for (var l =0; l< b1[i][0][k].length ;l++){
//b1[i][0][k][l].join(',') ;
var reguha=/([А-Яа-я]+)([А-Яа-я]+|\d+)(\d)([А-Яа-я]+|\d+)/;
if(b1[i][0][k][1]==Number){
b1[i][0][k][l]=b1[i][0][k][l].replace(reguha,'$1,$4,$2,$3');
}
document.write(b1[i][0][k][l]);
}}}}
</script>
</body>
</html>
Последний раз редактировалось dima***, 26.04.2013 в 09:59.
|
|
26.04.2013, 10:57
|
|
Профессор
|
|
Регистрация: 28.02.2011
Сообщений: 349
|
|
Сообщение от dima***
|
Подскажите,пожалуйста,поче му не работает,в этом месте:
var reguha=/([А-Яа-я]+)([А-Яа-я]+|\d+)(\d)([А-Яа-я]+|\d+)/;
if(b1[i][0][k][1]==Number){
b1[i][0][k][l]=b1[i][0][k][l].replace(reguha,'$1,$4,$2,$3');
}
|
Весь код не читал, только это место.
Но регуха у вас какая-то неправильная. Для начала, первый скобочки (там есть плючик) съедают все доступные буквы, а значит буквы во вторых скобочках бессмысленны, они сматчится никогда не могут.
var reguha=/([А-Яа-я]+)([А-Яа-я]+|\d+)(\d)([А-Яа-я]+|\d+)/;
// ^ съедают ^ ^ бессм ^
Дальше, оставшаяся часть вторых скобок съедает все доступные цифры, значит третьи скобки сматчится никогда не могут, а значит и все выражение никогда не сматчится:
var reguha=/([А-Яа-я]+)([А-Яа-я]+|\d+)(\d)([А-Яа-я]+|\d+)/;
// ^съе^ ^^^
|
|
26.04.2013, 14:07
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,232
|
|
Сообщение от dima***
|
поче му не работает,в этом месте
|
(многабукаф)
А что вообще хотел сделать?
|
|
26.04.2013, 17:20
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
rgl-спасибо.
А как же сделать,чтобы сначала слова,а потом цифры?
Т.е.
Родник,Низам,1,1
Горец,Авангард,3,1
...
ЧГУ,Терек,3,1
Родник,Низам,1,1
Горец,Авангард,2,1
...
ЧГУ,Терек,1,2
Родник,Низам,1,2
Горец,Авангард,2,0
...
ЧГУ,Терек,4,1
|
|
26.04.2013, 18:32
|
|
Профессор
|
|
Регистрация: 28.02.2011
Сообщений: 349
|
|
Так, что ли?
function cifryVKonec( s ) {
var reguha = /([A-Za-z]+)[^A-Za-z\d]+([A-Za-z]+|\d+)[^A-Za-z\d]+([A-Za-z]+|\d+)[^A-Za-z\d]+([A-Za-z]+|\d+)/;
// ^^^^^^^это три раза^^^^^^^^
return s.replace( reguha, function( a, b, c, d, e ) {
if( /\d/.test( c ) && /\d/.test( d ) && ! /\d/.test( e ) )
return [b,e,c,d].join(",");
if( !/\d/.test( c ) && /\d/.test( d ) && /\d/.test( e ) )
return [b,c,d,e].join(",");
// else
return a;
} );
}
alert( cifryVKonec( "skadjflas - alsdfa, 5:8" ) );
alert( cifryVKonec( "sldfls 7 - 8 ldsfjkglsdf" ) );
(только буквы в регухе замените на русские)
|
|
27.04.2013, 09:10
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
rgl-спасибо!
В ваше коде понятно.А в моём случае непонятно.Я выложил часть кода.А так там есть вариант Родник1-1Низам,т.е слитно.Там 40 различных вариантов.
Поэтому,
var rega = /\d|[А-Яа-я]+/ig;-лучше оставить.И отдельно reguha сделать.
|
|
27.04.2013, 10:27
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от dima***
|
[А-Яа-я]
|
да откудаж, вы все, этот шаблон выскребаете?
Сотни раз уже было, что в последовательность для русских ё не попадает
|
|
27.04.2013, 10:34
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Сообщение от dmitriymar
|
да откудаж, вы все, этот шаблон выскребаете?
Сотни раз уже было, что в последовательность для русских ё не попадает
|
Да,это понятно,что нужно писать [А-Яа-яЁё].Просто в данном случае буквы "ё" не присутствует,поэтому достаточно [А-Яа-я].
А как,насчёт,помочь?
|
|
27.04.2013, 12:23
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от dima***
|
А как,насчёт,помочь?
|
тебе уже rgl, помог
|
|
27.04.2013, 17:10
|
|
Профессор
|
|
Регистрация: 28.02.2011
Сообщений: 349
|
|
Сообщение от dima***
|
А так там есть вариант Родник1-1Низам,т.е слитно.
|
Ну так плюсики на звездочки заменить где надо
function cifryVKonec( s ) {
var reguha = /([A-Za-z]+)[^A-Za-z\d]*([A-Za-z]+|\d+)[^A-Za-z\d]*([A-Za-z]+|\d+)[^A-Za-z\d]*([A-Za-z]+|\d+)/;
// ^^^^^^^это три раза^^^^^^^^
return s.replace( reguha, function( a, b, c, d, e ) {
if( /\d/.test( c ) && /\d/.test( d ) && ! /\d/.test( e ) )
return [b,e,c,d].join(",");
if( !/\d/.test( c ) && /\d/.test( d ) && /\d/.test( e ) )
return [b,c,d,e].join(",");
// else
return a;
} );
}
alert( cifryVKonec( "skadjflas - alsdfa, 5:8" ) );
alert( cifryVKonec( "sldfls 7 - 8 ldsfjkglsdf" ) );
alert( cifryVKonec( "rodnik1 - 1nizam" ) );
|
|
|
|