easyui扩展正则验证,函数验证

   用easyui做业务系统,对于默认的几个验证规则,肯定是不够的,难免会增加几种规则。可是问题来了,往往是我们在开发会遇到很多各种各样的验证,时间久了才发现,这些扩展的正则无非就是添加一个正则验证规则,那我为啥不将正则放到前端呢?想到这个说干就干,于是有了REGEX这个验证规则,愉快的调用几次后,感觉这功能还不错,心里贼爽了下。一段时间后,发现有些验证居然还和数据业务有关系,这下问题又来,难道我又要些一堆的规则!到底能不能象我的正则验证一样统一呢。果不其然,在苦思冥想半小时后,我这FUN验证规则浮出水面。

 //自定义正则验证
    REGEX: {
        validator: function (value, param) {
            var regex = param[0];
            var re = new RegExp(regex);
            return re.test(value);
        },
        message: '{1}'
    },
    //自定义函数验证
    FUN: {
        validator: function (value, param) {
            var fun = param[0];
            if ($.isFunction(fun)) {
                return fun(value);
            }
            return true;
        },
        message: '{1}'
    },

  解释一下,$.extend($.fn.validatebox.defaults.rules,{}),这里可以扩展很多规则,当然现在又了 REGEX 和 FUN 规则,感觉可以不用写其他的规则了,小小满足一下。

哇,功能这么强大,那我要怎么使用呢?

   FUN:

  <label for="F_FPSL" class="input_lable ">发票税率(%)</label><input type="text" name="F_FPSL" class="easyui-textbox input_box" data-options="107,prompt:'多个税率逗号隔开',validType:{FUN:[Jsdwxx.validatafpsl,'发票税率只能录入数字']}" />

  REGEX:

 <label for="F_SBDQ" class="input_lable ">上报地区</label><input type="text" name="F_SBDQ" class="easyui-textbox input_box" data-options="132,prompt:'例如:ZYCC',validType:{REGEX:['^[A-Za-z]{4}$','上报地区为4个字母']},boxCls:'uppercase'" /></li>

 PS:规则中 {0},{1},{...}和前台定义REGEX:[0,1,...]一一对应

原文地址:https://www.cnblogs.com/yfrs/p/4748522.html