https://github.com/ashuiweb/wxapp-mpForm

# 1 快速上手

# 1)引入组件并在wxml中使用

<mp-form id="form" rules="{{rules}}" models="{{formData}}" bind:msg="bindMsg">
  各类表单元素...       
</mp-form>

# 2)定义规则及需校验数据

data:{
    formData:{
      companyName:'',
      age:'',
    },
    rules:[
      {
        name: 'companyName',
        rules: [{ required: true, message: '请输入企业名称' }],
      },
      {
        name: 'age',
        rules: [{ required: true, message: '请输入年龄' }],
      },
    ],
}

####3)开始校验

//校验整个表单
this.selectComponent("#form").validateForm().then(res=>{
      console.log(res)
})
//校验单个字段
this.selectComponent("#form").validateFormField('companyName').then(res=>{
      console.log(res)
})
//校验多个字段 (传1个也是校验单个字段)
this.selectComponent("#form").validateFormFields(['companyName','age']).then(res=>{
      console.log(res)
})

# 2 校验规则

# 1) 内置校验规则

//message 不填则使用组件内部自定义的
rules: [
   { required: true, message: 'xxxxxxx' },//必填字段
   { minlength: 15 },                                       //长度最小15位
   { maxlength: 15 },                                       //长度最大15位
   { rangelength:[1,4] },                               //长度在1到4位之间
   { min:4 },                                                       //最小是4
   { max:4 },                                                       //最大是4
   {range:[1,4]},                                             //值在1到4之间
   {mobile:true},                                                   //验证手机号
   {email:true},                                                    //校验邮箱
   {url:true},                                                      //校验url
   { equalTo:'age' }                                            //校验和另一个字段等值
   { bytelength:3 }                                             //最多输入3个字符 一个中文算两个字符
 ],

# 2) 自定义规则

 {
        name: 'agree',
        rules: [{ required: true, validator: mustTrue, message: '请先同意相关条款' }],
 },
export default {
    //参数(当前规则,当前校验字段的值,当前规则中的param字段(拓展用),校验的对象)
    //校验tax
    taxNo:(rule, value, param, models)=>{
        let reg1 =  /^[A-Za-z0-9]{15}$/;
        let reg2 =  /^[A-Za-z0-9]{18}$/;
        let reg3 =  /^[A-Za-z0-9]{20}$/;
        if(reg1.test(value) || reg2.test(value) || reg3.test(value)){
        }else{
            return rule.message 
        }
    },
    //校验银行卡号
    bankAccount:(rule, value, param, models)=>{
        if(!value) return
        let reg=/^[0-9]{13,19}$/
        console.log(rule)
        console.log(reg.test(value)) 
        if(reg.test(value)){
             
        }else{
            return rule.message 
        }
    },
    mustTrue:(rule, value, param, models)=>{
        console.log(value)
        if(!value)
        return rule.message 
    }
}