jQuery Validation 邮箱规则

7

通过这个简单的电子邮件规则:

$("#loginCliente").validate({
    rules: {
        loginNomEmail: { required: true, email: true },
    }
});

在这个输入框中,如果我们输入"test@",就会得到验证错误。但是如果我们输入"test@teste",插件会显示这是一个有效的电子邮件地址。
如下是第一个示例,输入"test@":here is the first example with "test@" 如下是第二个示例,输入"test@test",可以看到没有出现错误:Now with "test@test". As can see, without error. 我该如何只在输入有效的电子邮件地址时验证此字段?
3个回答

14

我之前也遇到过同样的问题,我认为在规则中添加一个正则表达式可能会有所帮助。

// this function is to accept only email
    jQuery.validator.addMethod("accept", function(value, element, param) {
        return value.match(new RegExp("^" + param + "$"));
    },'please enter a valid email');

在您的规则中,您只需添加以下内容:

$("#loginCliente").validate({
    rules: {
        loginNomEmail: { required: true,
                         email: true,
                         accept:"[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}" },
    }
});

4

您可以向验证器添加自己的方法:

jQuery.validator.addMethod("emailExt", function(value, element, param) {
    return value.match(/^[a-zA-Z0-9_\.%\+\-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,}$/);
},'Your E-mail is wrong');

请使用“emailExt”而不是“email”:
$("#loginCliente").validate({
    rules: {
        loginNomEmail: { 
            required: true,
            emailExt: true
        }
    }
});

2

这个问题在这里已经被回答了几次,但是这里有一个链接可以参考。基本上只需要使用一个带有正则表达式的普通javascript函数即可。

使用jQuery进行电子邮件验证


1
谢谢!我使用这个链接(https://dev59.com/NXE95IYBdhLWcg3wAo9U#30650715)更新了jquery.validation.js文件,现在运行得很好! - Preston

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接