[TC] Опять регекспы...
Vande omentaina, Tiflocomp!
Опять они, родные, ни дна им ни покрышки!
итак, есть требование: при регистрации имя (логин) может быть любым,
удовлетворяющим следующему условию: оно должно содержать не менее двух
и не более четырёх слов и быть на кириллице. Таким образом, валидные логины:
"Джон Смит",
"Ульрих фон Юнгинген". Оговорюсь, что речь о JavaScript.
Был один регексп такого характера:
var re = /^([А-Я][а-я]+ ){2,4}$/i;
Понятно (это понял даже я!), что он будет пропускать только имена с
пробелом на конце ("Один или более символов на кириллице, затем
пробел, и всё это повторить от двух до четырёх раз").
Я попытался модифицировать (ха-ха) этот регексп, и получилось вот что:
var re = /^([А-Я][а-я]+ ){2,3}([А-Я][а-я]+)$/i;
Вопрос: что не так?
Спасибо!
Андрей, доброго вам здоровья!
Вы пишете:
var re = /^([А-Я][а-я]+ ){2,3}([А-Я][а-я]+)$/i;
Вопрос: что не так?
Разберем выражение. По условию {2,3} первая скобка дает минимум два слова с
пробелом на конце. Вторая скобка добавляет к ним слово без пробела на конце-
получаем на выходе три слова, которые не удовлетворяют вашему условию- имя
должно состоять от двух до четырех слов.
К сожалению, совсем не знаю особенностей записи регулярных выражений в
javascript, поэтому остальное без комментариев.
С уважением,
Грызунов Александр. Самара.