Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.12.2014, 06:44
Новичок на форуме
Отправить личное сообщение для -BO- Посмотреть профиль Найти все сообщения от -BO-
 
Регистрация: 16.12.2014
Сообщений: 2

Регулярное выражение работает не правильно, почему?
Столкнулся с проблемой: вот таким регулярным выражением в коде -> (?:г\. |г\.).*?(?:\,| ) пытаюсь найти название города по предшествующему набору символов "г." или "г. " в такой строке -> "Адрес: 119 296, Проспект Вернадского 7 E-mail: moscowcircus@mail.ru Телефон: (495) 930-13-26; факс (095) 930-43-15" Находит "го 7" (а по идее не должен)
Копирую и вставляю это же выражение и эту же строку в онлайн конструктор "http://regexpal.com/" или "http://www.pcre.ru/eval" - Все работает отлично!
В этой строке "Адрес: 115372, г.Москва ул. Бирюлевская д.49 кор.4, стр 2 E-mail: mag-005@mail.ru Телефон: +7 (495) 655-11-22; 655-11-48" название города находит отлично и в коде и в онлайн конструкторах!
Что же у меня не так?

Код прост:
var reg = new RegExp("(?:г\. |г\.).*?(?:\,| )", "i");
var str1 = "Адрес: 119 296, Проспект Вернадского 7 E-mail: moscowcircus@mail.ru Телефон: (495) 930-13-26; факс (095) 930-43-15";
var str2 = "Адрес: 105264, г. Москва, 9 я парковая д. 41 кв. 27 E-mail: info@valneriz.ru Телефон: (499)367-35-03";
console.log(reg.exec(str1));
console.log(reg.exec(str2));

Последний раз редактировалось -BO-, 16.12.2014 в 07:24.
Ответить с цитированием
  #2 (permalink)  
Старый 16.12.2014, 09:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

-BO-, читаем доку
Цитата:
Когда регулярное выражение создается при помощи конструктора new RegExp(…), необходимо помнить, что обратные слеши (\) должны экранироваться,
var reg = new RegExp("(?:г\\.\\s*)[^,\\s]+", "i");

Последний раз редактировалось рони, 16.12.2014 в 10:10.
Ответить с цитированием
  #3 (permalink)  
Старый 16.12.2014, 10:06
Новичок на форуме
Отправить личное сообщение для -BO- Посмотреть профиль Найти все сообщения от -BO-
 
Регистрация: 16.12.2014
Сообщений: 2

Спасибо учитель Йода! Да прибудет с тобой сила регулярных выражений!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29
Помогите с javascript (Почему не работает) remus Оффтопик 9 09.06.2010 11:18