0

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

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

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

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

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

4

1 回答 1

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.");

您需要将用户名正则表达式更改为您需要的,希望这会有所帮助

于 2012-06-21T13:35:41.007 回答