我正在尝试验证电子邮件地址。目前,我正在使用以下正则表达式来验证电子邮件地址,它工作得非常好。但我现在想把它改成只允许域名使用min 2和max 40个字符--电子邮件地址的一部分,即在@符号之后。我试着设置范围,但我猜它不会像这样工作。我哪里错了?
正则表达式:
^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})$发布于 2016-09-05 01:38:51
验证电子邮件地址并不是一件容易的事情,而且您的正则表达式会拒绝test+1234@localhost等完美的电子邮件地址。如果你需要自己做这件事,可以看看RFC 822 §6。
但是,在C#中,有一个类MailAddress,它有一个接受字符串参数的构造函数。您可以尝试构造MailAddress addr = new MailAddress(emailString),并查看它是否抛出FormatException。作为一个好处,MailAddress对象有许多有用的方法来处理电子邮件地址。
编辑:很抱歉,我错过了你试图限制主机长度的消息。如果您按照上面的方式创建MailAddress,那么addr.Host将包含主机名部分,您可以检查它的长度。
https://stackoverflow.com/questions/39319662
复制相似问题