Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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_Jquery_Regex_Validation - Fatal编程技术网

Javascript 用于电子邮件的正则表达式,该电子邮件之前不允许连续点@

Javascript 用于电子邮件的正则表达式,该电子邮件之前不允许连续点@,javascript,jquery,regex,validation,Javascript,Jquery,Regex,Validation,我正在通过JavaScript编写一个用于客户端表单数据验证的正则表达式,但我找不到一种方法来生成一个符合以下规则的正则表达式: 电子邮件不得以点开头(仅以数字或小写字母开头) @之前的部分电子邮件可以包含小写字母、数字和点,但不能包含连续的字母、数字和点 @前面的最后一个字符不能是点 @之后必须至少有两个小写字母或数字,之后必须至少有一个包含点和至少两个小写字母的结构。 类似的电子邮件应与此正则表达式匹配: 卡里1.1兰特。2@gmail.edu.us或 詹姆士街23号。wart@mail3.

我正在通过JavaScript编写一个用于客户端表单数据验证的正则表达式,但我找不到一种方法来生成一个符合以下规则的正则表达式:

  • 电子邮件不得以点开头(仅以数字或小写字母开头)
  • @之前的部分电子邮件可以包含小写字母、数字和点,但不能包含连续的字母、数字和点
  • @前面的最后一个字符不能是点
  • @之后必须至少有两个小写字母或数字,之后必须至少有一个包含点和至少两个小写字母的结构。 类似的电子邮件应与此正则表达式匹配: 卡里1.1兰特。2@gmail.edu.us或 詹姆士街23号。wart@mail3.co.com 但不是这样的 玛丽莲。。monroe@gmail.co.us或marlon12brando@yahoo.edu.us或jamescaan.@gmail.gov.fr
  • 这是我的正则表达式,但它检查整个字符串的结尾是否不允许点,而不仅仅是@之前:

    var emailAddressModel = /^((?!\.)(?!.*\.$)(?!.*?\.\.)[a-z0-9.]{6,30})[@][a-z0-9]{2,}([.][a-z]{2,})+$/;
    
    你试过这个吗

    [a-z0-9][2][a-z0-9][2][a-z][2][2][a-z0-9][2][a-z][2][2][a-z0-9][a-z0-9][a-z0-9][a-z0 9][2][a-z][2][a-z][2][2][2][2][1][code>

  • 这将精确检查电子邮件名称是否在6-30个字符之间
  • 如果“@”前面有一个点,它将忽略该电子邮件

  • 如下所示为您的方框:

    ^[0-9a-z]+(?:\.[0-9a-z]+)*@[a-z0-9]{2,}(?:\.[a-z]{2,})+$
    
    在线查看

    • ^
      -起锚线
    • [0-9a-z]+
      -1+数字或小写字母
    • (?:
      -打开非捕获组:
      • \.[0-9a-z]+
        -文字点后跟1+数字或小写字母
      • )*
        -关闭非捕获组并匹配0+次
    • @
      -文字“@”
    • [a-z0-9]{2,}
      -2+数字或小写字母
    • (?:
      -打开非捕获组:
      • \.[a-z]{2,}
        -后跟2+小写字母的文字点
      • )+
        -关闭非捕获组并匹配1+次
    • $
      -端线锚
    如果您希望在“@”之前包含最小-最大部分(不是您的要求,而是您自己尝试的模式),您可以使用:

    ^(?=.{6,30}@)[0-9a-z]+(?:\.[0-9a-z]+)*@[a-z0-9]{2,}(?:\.[a-z]{2,})+$
    
    其中唯一的区别是,在“@”前面的6-30个字符处,断言位置的正向前瞻性