jQuery验证插件 - addMethod或者验证

时间:2012-06-21 11:27:05

标签: jquery regex jquery-validate

我有一个新的验证要求,我正试图围绕最好的方法来完成。

我有一个字段,可以是电子邮件地址或用户名。

要求已经询问如果用户输入电子邮件,将运行电子邮件验证(内置方法),否则验证将是带有基本标点符号的字母。

所以我的想法是 - 如果输入@,运行电子邮件验证 - 否则运行带有基本标点符号的字母 - 但我正在寻找可能的其他方法的输入。

另外,在这种情况下,如果/ else,您将如何编写两部分验证?

1 个答案:

答案 0 :(得分:1)

  $("#frm").validate({
            rules: {
                username: {
                    required: true,
                    usernameemail: true,
                    maxlength: 100
                }
            }
   });

   $.validator.addMethod("usernameemail", function(value, element) {
        if (this.optional(element)) // return true on optional element
            return true;
        valid = true;

        if (value.indexOf("@") > 0) {
            valid = valid && $.validator.methods.email.call(this, value, element);
        } else {
            valid = valid && $.validator.methods.username.call(this, value, element);
        }
        return valid;
    }, 'Please provide a valid username or email');

    $.validator.addMethod("username", function(value, element) {
        return this.optional(element) || /^[a-z0-9\-]+$/i.test(value);
    }, "Username must contain only letters, numbers, or dashes.");

您需要将用户名正则表达式更改为您需要的内容,希望这有助于