помогите составить регексп
Добрый вечер. помогите пожалуйста сформировать регулярное выражение ...
есть строка var str='Катя забрала у Феди Иванова 3 конфеты' var name='Катя'; фамилия Феди может как присутствовать, так и отсутствовать. нужно составить что-то типа этого... var Reg= new RegExp(name+ ' забрала у (\w+)(\s)?(\w+)?', "i") if (Reg.test(str)) ... подскажите где ошибка |
\w не работает с кириллицей.
|
изменил \w на \\D , оказывается обратные слеши (\) должны экранироваться :) заработало )
|
чтобы не создавать новую тему, спрошу в этой...
Допустим меются регекспы var katya= new RegExp('Катя', "i"); var fedya=new RegExp('Федя Иванов', "i"); var senya=new RegExp('Сеня', "i"); и строка var srt="Коля Сеня Федя катя Боря Федя Иванов"; Как осуществить поиск в строке этих регекспов и вывести первый попавшийся ? |
Сложите их в массив и воспользуйтесь search() или match() методами String, либо test() или exec() методами самого RegExp
А вообще вот отличная статья по этому поводу: http://javascript.ru/basic/regular-expression :) |
если я составляю регексп таким образом...
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"); - так находит только федю и сеню Что не так ? |
А то не так, что Вы непонятно что написали :)
Вот как надо: var reg=new RegExp('Федя Иванов|Сеня|' + katya, "i"); |
Спасибо Вам большое ! заработало :)
|
Часовой пояс GMT +3, время: 13:29. |