Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2013, 09:19
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

ошибка в рег.выражении
Не получатся сделать регулярное выражение...

Должно получится:
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>
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2013, 09:49
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

http://regexpal.com/
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2013, 09:51
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Для начала, в девятой строке наверно надо не 1 а i
document.write(c[i][0]+'<br>')
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2013, 09:53
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Во-вторых, точка с плюсом, которая вначале после кавычки, съедает все символы до второй закрывающей кавычки
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2013, 09:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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>
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2013, 11:02
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

<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, 13.03.2013 в 11:05.
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2013, 11:19
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Что-то не так, не пойму.
Мой пример у меня локально работает и в хроме и в мозилле, но когда пытаюсь посмотреть из форума, в мозилле все ОК, в хроме зависает. Пример рони работает в обоих браузерах. Что у меня не так?
Ответить с цитированием
  #8 (permalink)  
Старый 13.03.2013, 12:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

rgl,
Google Chrome - нормально Версия 25.0.1364.160 m
Ответить с цитированием
  #9 (permalink)  
Старый 13.03.2013, 14:07
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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, 13.03.2013 в 14:49.
Ответить с цитированием
  #10 (permalink)  
Старый 13.03.2013, 14:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Deff,
отсутствует вторая кавычка в 3 элементе массива, отсутствует 4 пустой элемент.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в функции djonA Javascript под браузер 3 07.03.2013 15:15
Ошибка Javascript при открытии Opera КсюК Opera, Safari и др. 1 30.08.2012 11:40
firebug пишет ошибка invalid range in character class Dim@ Общие вопросы Javascript 5 10.05.2012 16:52
То-ли лыжи не едут, толи... возможно ошибка в коде. AzriMan Общие вопросы Javascript 19 18.05.2009 16:07
IE: неизвестная ошибка выполнения _Kpot_ Internet Explorer 1 03.04.2008 11:00