我有以下正则表达式
/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/
目前与表格-myemail-address@aasdf.com的电子邮件地址相匹配(不希望接受此电子邮件地址bc以连字符开头) 如果我希望它拒绝以 - (连字符)开头的电子邮件地址,并且只接受以下划线开头的电子邮件地址_我将如何修改正则表达式?
修改正则表达式之前的另一个问题 - 电子邮件甚至可以从连字符开始吗?如果他们可以,那么修改正则表达式就没有意义了。
感谢。
答案 0 :(得分:2)
/^[_a-zA-Z0-9]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/
答案 1 :(得分:2)
要查明是否允许使用带有-
个引号的电子邮件地址,您可以使用更符合标准的正则表达式进行检查:
print filter_var("-test@example.com", FILTER_VALIDATE_EMAIL);
答案 2 :(得分:2)
-hello-world@example.net
是有效的电子邮件地址。
来自RFC3696 Section 3: Restrictions on email addresses:
local-parts可以包含任何字母组合 字符,数字或任何特殊字符
! # $ % & ' * + - / = ? ^ _ ` . { | } ~
值得注意的是,“[期间]可能不会用于开始或结束本地部分,也不会出现两个或更多连续期间。”
答案 3 :(得分:0)
修复你的正则表达式的第一部分:
/^[_a-zA-Z0-9]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/