jQuery验证插件-如果为空,则允许,如果不允许,则检查所需格式

Jan*_*ník 1 javascript validation jquery

我具有自定义的jQuery验证功能,但无法按照我的意愿使其工作:如果element为空,则我不想对其进行验证,但是如果它不为空,则要检查值是否正确。

我的自定义函数如下所示:

$.validator.addMethod("phoneCZ", function(phone_number, element) {
        phone_number = phone_number.replace(/\s+/g, "");

        if(!phone_number.match(/^((\+420)|(\+421))??[0-9]{3}?[0-9]{3}?[0-9]{3}$/)){ 
            return (phone_number.length < 1);
        }
        else {        
            return (phone_number.length >= 9);
        }
    }, "Neplatné telefonní ?íslo");
Run Code Online (Sandbox Code Playgroud)

也许只是一些描述:允许的格式为:123456789 +420123456789 +421123456789

如果数字的格式不正确,则返回true,如果长度为0,则返回false。我的格式是否匹配,我检查长度是否至少为9个字符。

Aru*_*hny 5

有一种称为的方法optional可以让您执行此操作

$.validator.addMethod("phoneCZ", function (phone_number, element) {
    if (this.optional(element)) {
        return true;
    }
    phone_number = phone_number.replace(/\s+/g, "");

    if (!phone_number.match(/^((\+420)|(\+421))??[0-9]{3}?[0-9]{3}?[0-9]{3}$/)) {
        return (phone_number.length < 1);
    } else {
        return (phone_number.length >= 9);
    }
}, "Neplatné telefonní ?íslo");
Run Code Online (Sandbox Code Playgroud)

演示:

$.validator.addMethod("phoneCZ", function (phone_number, element) {
    if (this.optional(element)) {
        return true;
    }
    phone_number = phone_number.replace(/\s+/g, "");

    if (!phone_number.match(/^((\+420)|(\+421))??[0-9]{3}?[0-9]{3}?[0-9]{3}$/)) {
        return (phone_number.length < 1);
    } else {
        return (phone_number.length >= 9);
    }
}, "Neplatné telefonní ?íslo");
Run Code Online (Sandbox Code Playgroud)
$.validator.addMethod("phoneCZ", function(phone_number, element) {
  if (this.optional(element)) {
    return true;
  }
  phone_number = phone_number.replace(/\s+/g, "");

  if (!phone_number.match(/^((\+420)|(\+421))??[0-9]{3}?[0-9]{3}?[0-9]{3}$/)) {
    return (phone_number.length < 1);
  } else {
    return (phone_number.length >= 9);
  }
}, "Neplatné telefonní ?íslo");

jQuery(function($) {
  var validator = $('#myform').validate({
    debug: true,
    rules: {
      phoneCZ1: {
        phoneCZ: true
      },
      phoneCZ2: {
        required: true,
        phoneCZ: true
      }
    },
    messages: {}
  });
});
Run Code Online (Sandbox Code Playgroud)