Подскажите,пожалуйста,поче му не работает,в этом месте
Подскажите,пожалуйста,поче му не работает,в этом месте:
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> |
Цитата:
Но регуха у вас какая-то неправильная. Для начала, первый скобочки (там есть плючик) съедают все доступные буквы, а значит буквы во вторых скобочках бессмысленны, они сматчится никогда не могут. var reguha=/([А-Яа-я]+)([А-Яа-я]+|\d+)(\d)([А-Яа-я]+|\d+)/; // ^ съедают ^ ^ бессм ^ Дальше, оставшаяся часть вторых скобок съедает все доступные цифры, значит третьи скобки сматчится никогда не могут, а значит и все выражение никогда не сматчится: var reguha=/([А-Яа-я]+)([А-Яа-я]+|\d+)(\d)([А-Яа-я]+|\d+)/; // ^съе^ ^^^ |
Цитата:
А что вообще хотел сделать? |
rgl-спасибо.
А как же сделать,чтобы сначала слова,а потом цифры? Т.е. Родник,Низам,1,1 Горец,Авангард,3,1 ... ЧГУ,Терек,3,1 Родник,Низам,1,1 Горец,Авангард,2,1 ... ЧГУ,Терек,1,2 Родник,Низам,1,2 Горец,Авангард,2,0 ... ЧГУ,Терек,4,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" ) ); (только буквы в регухе замените на русские) |
rgl-спасибо!
В ваше коде понятно.А в моём случае непонятно.Я выложил часть кода.А так там есть вариант Родник1-1Низам,т.е слитно.Там 40 различных вариантов. Поэтому, var rega = /\d|[А-Яа-я]+/ig;-лучше оставить.И отдельно reguha сделать. |
Цитата:
Сотни раз уже было, что в последовательность для русских ё не попадает |
Цитата:
А как,насчёт,помочь? |
Цитата:
|
Цитата:
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" ) ); |
Часовой пояс GMT +3, время: 16:00. |