【发布时间】:2016-01-18 20:06:40
【问题描述】:
我有一个电子邮件输入字段,我的正则表达式为 ^[^@]+@[^@.]+.[^@]+$,但运行时它不需要 .com。
转到https://jsfiddle.net/uscktx9d/ 并输入 www@www 并点击提交。这应该验证失败,但不是。正如您在这里看到的https://regex101.com/r/pB6iF4/1,正则表达式应该需要.com。
为什么我的 HTML5 不需要这个?
【问题讨论】:
-
您在问题和链接的小提琴中缺少
`来转义文字.。将`添加到小提琴中,使整个正则表达式为^[^@]+@[^@.]+\.[^@]+$拒绝www@www并接受www@www.com。 -
你可以避免 HTML5 模式中隐含的第一个 ^ 和最后一个 $ : [^@]+@[^@]+\.[^@]+ 就足够了