vue+element 正则表达式进行表单验证

<template>  
    <el-form :model="form" label-width="115px" ref="form" :rules="rules" label-position="left">
        <el-row :gutter="20"> 
        <el-col :span="12">
            <el-form-item label="同期最大购买数" prop="pkspace_num">
            <el-input v-model="form.pkspace_num" auto-complete="off" clearable></el-input>
            </el-form-item>
        </el-col>
        <el-col :span="12">
            <el-form-item label="价格"  prop="price" >
            <el-input v-model="form.price" auto-complete="off" clearable><template slot="append">{{price_txt}}</template></el-input>
            </el-form-item>
        </el-col>
        </el-row>
        <el-row :gutter="20">
        <el-col :span="12">
            <el-form-item label="C端最大折扣率"  prop="c_disrate">
            <el-input v-model="form.c_disrate" auto-complete="off" clearable></el-input>
            </el-form-item>
        </el-col> 
        </el-row> 
    </el-form> 
</template>

<script>
  export default {
    name: "creatRent",
    data(){ 
      let patter = /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/;
      let isNumber = (rule, value, callback) => {
        if (!patter.test(value)) {
          return callback(new Error('必须非负整数或至多保留两位小数'))
        } else {
          callback()
        }
      };
      let percent = /^(?:[1-9]?\d|100)$/;
      let isPercent = (rule, value, callback) => {
        if (!percent.test(value)) {
          return callback(new Error('请输入0-100的整数'))
        } else {
          callback()
        }
      };
      let num = /^(0|\+?[1-9][0-9]*)$/;
      let isNum = (rule, value, callback) => {
        if (!num.test(value)) {
          return callback(new Error('请输入非负整数'))
        } else {
          callback()
        }
      };
      return { 
        form: { 
          pkspace_num: '', 
          price:'', 
          c_disrate:'', 
        },
        rules: { 
          pkspace_num: [
            { required: true, message: '同期最大购买数不能为空', trigger: 'blur' },
            { min: 1, max: 5, message: '长度在 1 到 5 个字符', trigger: 'blur' },
            { validator:isNum}
          ], 
          price: [
            { required: true, message: '价格不能为空',trigger: 'blur' },
            { min: 1, max: 8, message: '长度在 1 到 8 个字符', trigger: 'blur' },
            { validator:isNumber}
          ], 
          c_disrate: [
            { required: true, message: 'C端最大折扣率不能为空', trigger: 'blur' },
            { min: 1, max: 3, message: '长度在 1 到 3 个字符', trigger: 'blur' },
            { validator:isPercent}
          ], 
        }, 

      }
    }, 


  }
</script> 

  

posted @ 2019-02-27 09:50  lilelile  阅读(11849)  评论(0编辑  收藏  举报