ошибка в рег.выражении
Не получатся сделать регулярное выражение...
Должно получится: document.write(c[0][0]);//«Школа №31» document.write(c[0][1]);//Москва document.write(c[1][0]);//«Школа №31» document.write(c[1][1]);//""
<script>
var arr='«Школа №31» Москва.«Школа №31».';
reg=/([«]?.+[»]?)(?:\s([А-Яа-я]+))?\./ig;
b=arr.match(reg);
c=[];
for(i=0;i<b.length;i++){
c[i]=b[i].replace(reg,'$1,$2');
c[i] = c[i].split(',');
document.write(c[1][0]+'<br>');
}
</script>
|
|
Для начала, в девятой строке наверно надо не 1 а i
document.write(c[i][0]+'<br>') |
Во-вторых, точка с плюсом, которая вначале после кавычки, съедает все символы до второй закрывающей кавычки
|
dima***,
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
var arr='«Школа №31» Москва.«Школа №31».';
reg=/(«.+?»)\s?([А-Яа-я]*)\./ig;
b=arr.match(reg);
c=[];
for(i=0;i<b.length;i++){
c[i]=b[i].replace(reg,'$1,$2');
c[i] = c[i].split(',');
document.write(c[i]+'<br>');
}
</script>
</body>
</html>
|
<html>
<head></head>
<body>
<script>
var arr='«Школа №31» Москва.«Школа №31».';
var reg=/(«[^»]*»|[^«\s.]+)[\s.]*/ig
var b;
while( b=reg.exec(arr) )
document.write( b[1]+"<br>" );
</script>
</body>
</html>
ЗЫ Правильно ли я понял (из примера что должно получиться) что точки тоже надо удалять? ЗЫ2 Сорри за плохой (по мнению некоторых) стиль - применение присваивания внутри while (где ожидается проверка условия, т.е. легко перепутать со сравнением) |
Что-то не так, не пойму.
Мой пример у меня локально работает и в хроме и в мозилле, но когда пытаюсь посмотреть из форума, в мозилле все ОК, в хроме зависает. Пример рони работает в обоих браузерах. Что у меня не так? |
rgl,
Google Chrome - нормально Версия 25.0.1364.160 m |
var arr='«Школа №31» Москва.«Школа №31».';
var arr=arr.split(/[\.\s]*(«[^«»]*»)[\.\s]*/img);
arr.slice(0,1);arr.pop();
alert(arr.join('\n')) //document.write(arr.join('\n');
--- |
Deff,
отсутствует вторая кавычка в 3 элементе массива, отсутствует 4 пустой элемент. |
| Часовой пояс GMT +3, время: 11:48. |