Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.08.2011, 22:42
Интересующийся
Отправить личное сообщение для ChikiSt Посмотреть профиль Найти все сообщения от ChikiSt
 
Регистрация: 01.07.2011
Сообщений: 28

помогите составить регексп
Добрый вечер. помогите пожалуйста сформировать регулярное выражение ...
есть строка
var str='Катя забрала у Феди Иванова 3 конфеты'
var name='Катя';
фамилия Феди может как присутствовать, так и отсутствовать. нужно составить что-то типа этого...
var Reg= new RegExp(name+ ' забрала у (\w+)(\s)?(\w+)?', "i")
if (Reg.test(str)) ...

подскажите где ошибка
Ответить с цитированием
  #2 (permalink)  
Старый 19.08.2011, 22:54
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

\w не работает с кириллицей.
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2011, 12:15
Интересующийся
Отправить личное сообщение для ChikiSt Посмотреть профиль Найти все сообщения от ChikiSt
 
Регистрация: 01.07.2011
Сообщений: 28

изменил \w на \\D , оказывается обратные слеши (\) должны экранироваться заработало )
Ответить с цитированием
  #4 (permalink)  
Старый 21.08.2011, 07:42
Интересующийся
Отправить личное сообщение для ChikiSt Посмотреть профиль Найти все сообщения от ChikiSt
 
Регистрация: 01.07.2011
Сообщений: 28

чтобы не создавать новую тему, спрошу в этой...
Допустим меются регекспы
var katya= new RegExp('Катя', "i");
var fedya=new RegExp('Федя Иванов', "i");
var senya=new RegExp('Сеня', "i");
и строка
var srt="Коля Сеня Федя катя Боря Федя Иванов";
Как осуществить поиск в строке этих регекспов и вывести первый попавшийся ?
Ответить с цитированием
  #5 (permalink)  
Старый 21.08.2011, 08:08
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Сложите их в массив и воспользуйтесь search() или match() методами String, либо test() или exec() методами самого RegExp
А вообще вот отличная статья по этому поводу:
http://javascript.ru/basic/regular-expression
Ответить с цитированием
  #6 (permalink)  
Старый 21.08.2011, 09:38
Интересующийся
Отправить личное сообщение для ChikiSt Посмотреть профиль Найти все сообщения от ChikiSt
 
Регистрация: 01.07.2011
Сообщений: 28

если я составляю регексп таким образом...
var reg=new RegExp('Федя Иванов|Сеня', "i");
var srt="Коля Сеня Федя катя Боря Федя Иванов";
if (reg.test(str)) ...
то он прекрасно находится в строке, но если записать имя в переменную, то он его не находит...
var katya= 'Катя';
var reg=new RegExp('Федя Иванов|Сеня'|katya, "i"); - так не находит никиких значений
var reg=new RegExp('Федя Иванов|Сеня'||katya, "i"); - так находит только федю и сеню
Что не так ?
Ответить с цитированием
  #7 (permalink)  
Старый 21.08.2011, 09:47
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

А то не так, что Вы непонятно что написали
Вот как надо:
var reg=new RegExp('Федя Иванов|Сеня|' + katya, "i");
Ответить с цитированием
  #8 (permalink)  
Старый 21.08.2011, 09:55
Интересующийся
Отправить личное сообщение для ChikiSt Посмотреть профиль Найти все сообщения от ChikiSt
 
Регистрация: 01.07.2011
Сообщений: 28

Спасибо Вам большое ! заработало
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прелоадер (помогите разобраться) xsfd AJAX и COMET 6 16.09.2010 02:30
Помогите разобраться!!! Greendumb Общие вопросы Javascript 8 19.08.2010 14:04
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50
Помогите нубу Fongolcs Работа 34 19.05.2010 22:45
помогите составить регклярное выражение olgatcpip Общие вопросы Javascript 7 05.05.2009 14:20