gpt4 book ai didi

javascript - 正则表达式:仅允许在域和顶级域中间使用连字符的电子邮件验证

转载 作者:行者123 更新时间:2023-11-30 08:43:49 27 4
gpt4 key购买 nike

我知道这个问题以前被问过很多次,但我还没有发现任何真正满足电子邮件地址必须满足的所有条件才能被视为有效的内容。

将以下内容视为电子邮件地址的结构:

part1@part2.part3.part4
  • part1=用户名

  • part2=域

  • part3 and part4 =顶级域

这些是必须满足的所有条件:

  1. 电子邮件地址不得接受空格
  2. 电子邮件地址不得以点或字母或数字以外的字符结尾
  3. 只允许一个@符号
  4. at符号前后不能有特殊字符
  5. 域点(邮箱地址part2之后的点)前后不能有特殊字符
  6. 用户名中不能连续输入两个或多个点
  7. 在域中,@和点之间,@和点后面的字符必须是字母或数字,中间唯一允许的特殊字符是连字符。
  8. 对于顶级域(第 3 部分和第 4 部分或电子邮件),步骤 7 也是如此

这是我目前使用的正则表达式:

^([\w\.\-]+)@([\w\-]+)((\.(\w){2,9})+)$

但不满足条件:4,5,6,7 and 8

我只是想弄清楚如何补充我的正则表达式并在这个过程中学习。

编辑

电子邮件地址中唯一允许的特殊字符是:点、连字符、下划线和 at 符号

这是无效电子邮件的列表

mkyong – 必须包含“@”符号

mkyong123@.com – 域名不能以点“.”开头

mkyong()*@gmail.com – 电子邮件只允许字符、数字、下划线和破折号

mkyong@%*.com – 电子邮件的顶级域名只允许字符和数字

mkyong..2002@gmail.com – 双点“.”不允许

mkyong.@gmail.com – 电子邮件的最后一个字符不能以点“.”结尾

mkyong@mkyong@gmail.com – 不允许使用双“@”

mkyong@gmail.com.1a - 两个字符的电子邮件的tld不能包含数字

有效:

mkyong@yahoo.com

mkyong-100@yahoo.com

mkyong.100@yahoo.com

mkyong111@mkyong.com

mkyong-100@mkyong.net

mkyong.100@mkyong.com.au

mkyong@1.com

mkyong@gmail.com.com

mkyong-100@yahoo-test.com

最佳答案

根据您的有效和无效电子邮件地址列表,这是我所能做的最好的事情:

^([\w-]|(?<!\.)\.)+[a-zA-Z0-9]@[a-zA-Z0-9]([\w\-]+)((\.([a-zA-Z]){2,9})+)$

DEMO

更新:

^([\w-]|(?<!\.)\.)+[a-zA-Z0-9]@[a-zA-Z0-9]([a-zA-Z0-9\-]+)((\.([a-zA-Z]){2,9}){0‌​,2})$

关于javascript - 正则表达式:仅允许在域和顶级域中间使用连字符的电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23797093/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com