1

此正则表达式用于验证电子邮件地址,但不包括撇号 (') 的情况,撇号 (') 是电子邮件地址第一部分中的有效字符。我已经尝试过自己并使用我找到的一些示例,但它们不起作用。

^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

如何稍微修改它以支持 ' 字符(撇号)?

4

2 回答 2

2

根据电子邮件地址的文档,撇号可以出现在@符号之前的任何位置,在您当前的正则表达式中是:

^([\w-\.]+)@

您应该能够将撇号添加到有效字符的括号中:

^([\w-\.']+)@

这将使整个正则表达式:

^([\w-\.']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

编辑(单引号中包含的正则表达式)
如果您在带有单引号的字符串中使用此正则表达式,例如在 PHP 中使用$regex = '^([\w ...,您将需要使用 转义正则表达式中的单引号\'

^([\w-\.\']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
于 2012-11-09T19:55:17.637 回答
1

您需要按如下方式更新第一部分:

^([\'\w-\.]+)
于 2012-11-09T19:57:02.340 回答