2014-01-07 149 views
1

请在下面找到我用于验证电子邮件地址的正则表达式。这工作正常。Java正则表达式指定长度

^[-!#$%&\\'*+\\\\./<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 {|}〜] + $

在这种情况下您无法使用^ [ - !#$%& \'* + \\。] + [^ _ {}}〜] {1,60} $

匹配整个字符串,但它只匹配字符串的第二部分,在这种情况下, d使用下面的正则表达式: -

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

尝试它现在应该工作。

+0

你真的尝试过吗? – Toto

+0

是的,我使用了不同的正则表达式和数字。 – user3115056

0

如果你想验证的有效途径电子邮件试试这个: Good solution

使用{n,m} n匹配(最小含)米(最大含)字符。

0

使用lookahead断言:

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