jQuery 验证电子邮件验证问题

标签 jquery regex jquery-validate

我正在尝试排查并修复电子邮件验证无法正常工作的原因。它应该检测到无效的电子邮件:其中有太多...(点),但仍然除了欧洲地址(test@tom.uk.tk)以及test@aol.com。但到目前为止,除了一个点之外,如果你没有完成输入,只要它有@,只要你不添加(.)点。有人可以帮我解决我哪里出错了吗?

<script>
     $("#form").validate({
    rules: {
        firstname_1: {
            required: true
        },
        email_1: {
            required: true,
            email: true
        },
        // Same for other fields
    },
    messages: {
        firstname_1: "This field is required.",
        email_1>: "Please enter valid email address.",
        // Repeat for other fields
    }
});
function isValidEmail(email_1)
{
    return /^[a-z0-9]+([-._][a-z0-9]+)*@([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,4}$/.test(email_1)
        && /^(?=.{1,64}@.{4,64}$)(?=.{6,100}$).*/.test(email_1);
}
</script>

最佳答案

假设您已经拥有正确的验证逻辑和/或正则表达式,那么您需要使用 the .addMethod() method 创建自己的规则.

$("#form").validate({
    rules: {
        firstname_1: {
            required: true
        },
        email_1: {
            required: true,
            myEmail: true  // <- declare your custom rule
        },
        // Same for other fields
    },
    messages: {
        firstname_1: "This field is required.",
        email_1: "Please enter valid email address.",
        // Repeat for other fields
    }
});

// create your custom rule
jQuery.validator.addMethod("myEmail", function(value, element) {
    return this.optional(element) || /* your regex boolean logic goes here */;
}, 'Please enter valid email address.');

注意:messages 中的字段名称也存在语法/拼写错误。应为 email_1,而不是 email_1>

See this answer了解使用 .addMethod() 的正确方法。

关于jQuery 验证电子邮件验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28259933/

相关文章:

jquery - CSS 或 JavaScript 导致搜索结果框出现在按键之前

php - 在 HTML 字符串中间插入文本

c# - 转义 patten 导致编译错误

Jquery验证函数

javascript - 如何使用 jquery validate 用最少的一个输入进行验证?

javascript - 提交表单时保持选中复选框

javascript - 无法使用 Django 设置 jquery pjax(未设置 header ,但添加了 GET 参数)

javascript - jQuery ajax load() 的错误处理

java - 模式名称特殊字符

asp.net - 如果有多个按钮,如何将 jquery 验证仅与一个按钮关联?