JavaScript中的电子邮件正则表达式验证允许字符(#$%&;*等)位于中间
电子邮件格式如下:本地部分@域部分.com 本地部分&域部分不应以特殊字符(@#&()*,./{}^%[]~`!$=\\\\\;;:?)开头或结尾,包括连字符(-) 本地部分和域部分只能在中间包含上述特殊字符,如(#$%&*-etc) 本地部分的长度限制分别为64个和域部分的长度限制分别为255个字符 域\u部分不能包含所有数字JavaScript中的电子邮件正则表达式验证允许字符(#$%&;*等)位于中间,javascript,regex,validation,email,Javascript,Regex,Validation,Email,电子邮件格式如下:本地部分@域部分.com 本地部分&域部分不应以特殊字符(@#&()*,./{}^%[]~`!$=\\\\\;;:?)开头或结尾,包括连字符(-) 本地部分和域部分只能在中间包含上述特殊字符,如(#$%&*-etc) 本地部分的长度限制分别为64个和域部分的长度限制分别为255个字符 域\u部分不能包含所有数字 所以根据你有限的描述,你似乎在寻找什么 以下是模式:^(?[^-].[^-])@(?[^-].[^-])\..{2,3}$ 它将它们保存到命名的捕获组中,并假定loca
所以根据你有限的描述,你似乎在寻找什么 以下是模式:
^(?[^-].[^-])@(?[^-].[^-])\..{2,3}$
它将它们保存到命名的捕获组中,并假定localpart和domainpart至少包含2个字符(它们应该包含2个字符)。任何部分都不允许以-
开头或结尾
还有其他要求吗?或者这几乎涵盖了所有要求吗?于2018年7月27日更新
^(?![.!#$%&'*+/=?^_`{|}~-])(?:[a-zA-Z0-9]|(?:(?:([.])(?!\1)|[!#$%&'*+/=?^_`{|}~-]))(?!@)){1,64}@(?=.{1,255}$)(?!\d+$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$
上面的表达式不起作用…请查找再次更新的确切要求。感谢sln提供的信息,它在上面的几次更新后才起作用。进一步的增强要求是不允许在上面的正则表达式中使用特殊字符。例:测试。。。。test@gmail.com不可接受,当前它接受提供的正则表达式。你能告诉我它在哪里需要更新吗。上面的表达式不起作用……请发现确切的要求再次更新。
域部分可能只包含上面的特殊字符,如(#$%&*-etc)中间。
我认为这些字符在域部分是非法的。@Sai-发布了一个更新的正则表达式。对不起,我没有说明域中的那些特殊字符。其他所有内容都适用于您更新的问题。感谢sln提供的信息,在更新几次之后它就起作用了。@Sai-如果它解决了您的大部分问题,您应该接受答案。
^ # BOS
(?! [.!#$%&'*+/=?^_`{|}~-] ) # Local does not start with one of these
(?: # Local
[a-zA-Z0-9]
|
# Special chars
# Local does not end with one of these
(?:
# Option 1
(?:
( [.] ) # (1), Not a consecutive special char (specific), add more
(?! \1 ) #
| # or,
[!#$%&'*+/=?^_`{|}~-] # One of these other special chars, remove from here
)
# Option 2
# | ( [.!#$%&'*+/=?^_`{|}~-] ) # (1) Not a consecutive same special char
# (?! \1 )
# Option 3
# | [.!#$%&'*+/=?^_`{|}~-] # Not a consecutive any special char
# (?! [.!#$%&'*+/=?^_`{|}~-] )
# Option 4, Original
# | [.!#$%&'*+/=?^_`{|}~-] # Any special char is OK
#
)
(?! @ )
){1,64} # 1 to 64 local characters
@
(?= .{1,255} $ ) # 1 to 255 domain characters
(?! \d+ $ ) # Domain must not contain all numbers
[a-zA-Z0-9] # Domain
(?:
[a-zA-Z0-9-]{0,61}
[a-zA-Z0-9]
)?
(?:
\.
[a-zA-Z0-9]
(?:
[a-zA-Z0-9-]{0,61}
[a-zA-Z0-9]
)?
)*
$ # EOS