简体   繁体   English

使用正则表达式验证电子邮件的最大长度

[英]Max length for email validation with regular expression

I find this regular expression for email validation. 我发现这个正则表达式用于电子邮件验证

[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})

I want max length for email will be 20 character so i change it to : 我希望电子邮件的最大长度为20个字符,所以我将其更改为:

([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})){0,20}

but when i entered more than 20 characters,it accept! 但是当我输入超过20个字符时,它接受了! also I used 我也用过

^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})){0,20}$ 

but it didn t work correctly.I want to use it in java code 但它没有正常工作。我想在java代码中使用它

You cannot just add {0,20} to the whole regex as it will mean from 0 to 20 occurrence of each email address. 您不能只将{0,20}添加到整个正则表达式,因为它意味着从每个电子邮件地址的0到20次出现。

You can use it like this using lookahead to enforce length: 你可以使用lookahead来强制执行长度:

^(?=.{1,20}$)[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM