Как ограничить количество символов в данном регулярном выражении?
Есть у меня такое регулярное выражение для проверки email.
/^[\S-\.]+@([\w-]+\.)+([\w-]{2,5})$/
Но проблема в том, что необходимо ограничить количество символов до 60. И сделать это желательно через регулярку.
Да и хотелось бы узнать, как ограничивать количество вводимых символов в подобной регулярке.
Ответы (2 шт):
Автор решения: splash58
→ Ссылка
добавьте в начало выражения
(?=^.{1,60}$)
чтобы проверить, что в строке от 1 до 60 символов
Автор решения: Wiktor Stribiżew
→ Ссылка
Используйте блок предварительного просмотра сразу после проверки начала строки:
/^(?=.{1,60}$)\S+@(?:[\w-]+\.)+[\w-]{2,5}$/
См. пример использования регулярного выражения.
Заметьте, что [\S-\.] - это то же, что и \S. Подробности:
^- начало строки(?=.{1,60}$)- позитивный блок предварительного просмотра вперёд, который требует наличия от одного до 60 символов, отличных от символов перевода строки, до конца строки\S+- один и более непробельных символов@- символ@(?:[\w-]+\.)+- один и более повторов одного и более букво-цифровых символов, символов нижнего подчёркивания или дефисов и символа точки[\w-]{2,5}- 2-5 букво-цифровых символов, символов нижнего подчёркивания или дефисов$- конец строки.