【发布时间】:2018-01-15 10:22:28
【问题描述】:
我正在尝试创建一些 JavaScript 验证以仅允许输入电子邮件地址的顶级域。例如(@gmail.com)
我已经使用下面的 sn-p 来尝试对输入进行表单验证,但是它仍然允许输入完整的电子邮件地址。例如(mark@gmail.com)
function isEmailDomain(emailDomainVar) {
var regEmail = new RegExp('@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/');
return regEmail.test(emailDomainVar);
}
提前感谢您对此问题的任何意见!
【问题讨论】:
-
这对你有用 ^[a-z0-9](\.?[a-z0-9]){5,}@g(oogle)?mail\.com$跨度>
-
似乎对我不起作用:(另外,如果可能的话,希望拥有更多的域,而不仅仅是 gmail
-
如果您有一个要允许的域的固定列表,那么为什么首先使用正则表达式...将它们放入一个数组中,然后检查用户输入的内容是否是存在于数组中。 (您是先将前导
@从用户输入中拆分出来,还是将所有值插入到带有前导@的数组中 - 由您决定……) -
多亏了下面的答案,我终于让它工作了。我的验证规则中缺少符号 ^。我不希望它限制特定域名的原因是,输入字段的目的是阻止电子邮件地址的第一部分,例如电子邮件 josh@gmail.com 中的“Josh”。我想我在最初的解释中对此有点不清楚,所以对此我深表歉意,但感谢您的所有意见!
标签: javascript email