请求优化邮箱验证正则表达式,支持含多个下划线与点的邮箱
邮箱正则表达式修改方案
你的原正则问题在于本地部分限制过严:开头强制要求字母数字,且每段循环必须以字母数字/加号结尾,导致无法匹配以下划线开头、或包含连续下划线/点的合法邮箱(比如_______@example.com)。
修改后的正则表达式
^[0-9a-zA-Z_]+([-.\w+]*[0-9a-zA-Z_+])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}$
关键修改点
- 起始字符类改为
[0-9a-zA-Z_],允许以下划线开头,直接支持_______@example.com这类场景 - 调整本地部分的匹配逻辑:允许在合法起始字符后,插入任意数量的
-.\w+(\w已包含下划线),同时确保整个本地部分结尾是字母数字、下划线或加号(避免以点/减号这类无效符号结尾) - 保留原域名部分规则,已支持常见合法域名格式(注:实际DNS规范中域名通常不允许下划线,若不需要可将域名部分的
\w改为[a-zA-Z0-9])
测试验证
能成功匹配:
email@example.comfirstname.lastname@example.com_______@example.comuser_name+tag@domain.co.uk
会拒绝无效格式:
user..name@example.com(连续点)-user@example.com(开头为减号)user@.example.com(域名开头为点)
内容的提问来源于stack exchange,提问作者Afan Ajdari
相关产品推荐
相关产品推荐

