2014-01-07 2 views
1

Ниже приведено регулярное выражение, которое я использую для проверки адреса электронной почты. Это работает нормально.Java Regex указать длину

^[-!#$%&\\'*+\\\\./<MORE_REGEX_HERE>^_`a-z{|}~]+$ 

Теперь я хочу, чтобы добавить проверку длины в этом регулярном выражении, например, адрес электронной почты может быть максимальной длиной 60. Таким образом, я пытался что-то вроде ниже

^([-!#$%&\\'*+\\\\./<MORE_REGEX_HERE>^_`a-z{|}~]+){1,60}$ 

но не работает. Есть предположения?

+0

В дополнение к оригинальной регулярное выражение, вы можете проверить длину '^ {, 60} $'.. – devnull

+0

Почему вы не указали свой ввод 'maxlength = '60''? : D – Baby

+0

@RafaEl - Вы имеете в виду в интерфейсе пользователя, который уже существует, но я хочу проверить его на бэкэнд. –

ответ

1

Эй вы можете найти решение ниже, если он работает: -

Это может быть так, что у Вас есть несколько строк, соответствующих пределах одного -

^[- # $% & \ '*! + \\.] + [^ _ `az {|} ~] + $

В таких случаях вы не можете использовать^[-! # $% & \ '* + \\.] + [^ _` az {|} ~] {1,60} $

, чтобы соответствовать всей строке, но она соответствует только второй части строки в таких случаях, когда вы d для использования нижележащего регулярного выражения: -

[^[-!#$%&\\'*+\\\\.]+[<MORE_REGEX_HERE>^_`a-z{|}~]+$]{1,60} 

Попробуйте это сейчас.

+0

Вы действительно попробовали? – Toto

+0

Да, я использовал другое выражение и число. – user3115056

0

Если вы хотите правильный способ проверки электронной почты, попробуйте следующее: Good solution

Используя {п, т} соответствует п (минимальный включительно) до м (максимум включительно) символов.

0

Используйте lookahead утверждение:

^(?=[-!#$%&\\'*+\\\\./<MORE_REGEX_HERE>^_`a-z{|}~]+).{1,60}$ 
Смежные вопросы