2014-01-07 306 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}$