Yahoo Имя пользователя Regex
-
05-07-2019 - |
Вопрос
Мне нужно (php) регулярное выражение, чтобы соответствовать правилам имени пользователя Yahoo:
Используйте от 4 до 32 символов и начинайте с буквы. Вы можете использовать буквы, цифры, подчеркивания и одну точку (.).
Решение
/^[A-Za-z](?=[A-Za-z0-9_.]{3,31}$)[a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*$/
Или немного короче:
/^[a-z](?=[\w.]{3,31}$)\w*\.?\w*$/i
Другие советы
/[a-zA-Z][a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*/
И проверьте, если strlen ($ username) > = 4 и < = 32.
Ограничение в одну точку? Это сложно.
Я не эксперт по регулярным выражениям, но я думаю, что это получится, за исключением этого:
[A-Za-z][A-Za-z0-9_.]{3,31}
Может быть, вы могли бы проверить. Требование отдельно?
Используя Lookaheads, вы можете сделать следующее:
^(?=[A-Za-z](?:\w*(?:\.\w*)?$))(\S{4,32})$
Поскольку вы не указали, какой тип регулярного выражения вам нужен, я добавил много Perl 5-совместимых вещей. Как и (?: ... )
для нехватки паренов.
Примечание. Я добавил отсутствующую близкую парню обратно.