Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的电子邮件正则表达式验证允许字符(#$%&;*等)位于中间_Javascript_Regex_Validation_Email - Fatal编程技术网

JavaScript中的电子邮件正则表达式验证允许字符(#$%&;*等)位于中间

JavaScript中的电子邮件正则表达式验证允许字符(#$%&;*等)位于中间,javascript,regex,validation,email,Javascript,Regex,Validation,Email,电子邮件格式如下:本地部分@域部分.com 本地部分&域部分不应以特殊字符(@#&()*,./{}^%[]~`!$=\\\\\;;:?)开头或结尾,包括连字符(-) 本地部分和域部分只能在中间包含上述特殊字符,如(#$%&*-etc) 本地部分的长度限制分别为64个和域部分的长度限制分别为255个字符 域\u部分不能包含所有数字 所以根据你有限的描述,你似乎在寻找什么 以下是模式:^(?[^-].[^-])@(?[^-].[^-])\..{2,3}$ 它将它们保存到命名的捕获组中,并假定loca

电子邮件格式如下:本地部分@域部分.com

本地部分&域部分不应以特殊字符(@#&()*,./{}^%[]~`!$=\\\\\;;:?)开头或结尾,包括连字符(-)

本地部分域部分只能在中间包含上述特殊字符,如(#$%&*-etc)

本地部分的长度限制分别为64个域部分的长度限制分别为255个字符

域\u部分不能包含所有数字


所以根据你有限的描述,你似乎在寻找什么

以下是模式:
^(?[^-].[^-])@(?[^-].[^-])\..{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