jQuery 验证 - 没有顶级域的电子邮件有效吗?

Bgl*_*l86 1 validation jquery

我的表单中有以下输入:

<input class="input-group-field" id="email" name="email" type="email" size="1" required="">
Run Code Online (Sandbox Code Playgroud)

我正在使用 jQuery 验证插件在 ajax 请求之前验证表单。它工作正常,但是为什么这个电子邮件输入有效:

abc@esd

因此,如果我不添加顶级域名,它似乎是有效的电子邮件?

而 abc@esd. 是无效的

任何想法出了什么问题或者我可以采取什么措施来防止这种情况?

代码:

 if ($("#valForm").valid()) {
   // Do Stuff
 }
Run Code Online (Sandbox Code Playgroud)

我没有制定任何规则

谢谢

FR6*_*FR6 5

创建自定义方法:

$.validator.addMethod('emailtld', function(val, elem){
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if(!filter.test(val)) {
        return false;
    } else {
        return true;
    }
}, '*');
Run Code Online (Sandbox Code Playgroud)

然后您可以将数据属性“data-rule-emailtld”添加到您的输入字段:

<input class="input-group-field" id="email" name="email" type="email" size="1" required="" data-rule-emailtld="true">
Run Code Online (Sandbox Code Playgroud)

注意: “Sharukh k shaji”的答案使用正确的正则表达式,但没有使用 jQuery 验证插件。