在电子邮件地址jQuery验证上需要域

Sam*_*Sam 5 email jquery jquery-validate

我正在使用以下代码(带有jQuery Validation Plugin)来验证电子邮件地址:

    $(".schedule-tour-form").validate({
        rules: {    
            Email: {
                required: true,
                email: true
            }       
        },
    });

    <input id="email" name="Email" class="email" type="email" placeholder="name@email.com" />
Run Code Online (Sandbox Code Playgroud)

问题是它仍然允许不带域后缀的电子邮件。例如,它验证“ test @ test”。如何要求域后缀?

BAD*_*EED 3

插件的官方页面,即使视为test@test有效邮件,那么我认为这是有意的。您可以使用严格的正则表达式模式创建新规则,如此处建议的那样

//custom validation rule
$.validator.addMethod("customemail", 
    function(value, element) {
        return /^([a-zA-Z0-9_.-+])+\@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/.test(value);
    }, 
    "Sorry, I've enabled very strict email validation"
);
Run Code Online (Sandbox Code Playgroud)

然后在您的规则中添加:

rules: {
                    email: {
                        required:  {
                                depends:function(){
                                    $(this).val($.trim($(this).val()));
                                    return true;
                                }   
                            },
                        customemail: true
                    },
Run Code Online (Sandbox Code Playgroud)