Skip to content
20:40

Checker - 表单校验

简介

提供了常用的表单校验方法,封装了常用规则,暂时不支持扩展规则。

html
<template>
  <view>
    <form>
      <input v-model="form.name" placeholder="请输入姓名" />
      <input v-model="form.intro" placeholder="请输入简介" />
      <input v-model="form.phone" placeholder="请输入手机号" />
    </form>
    <view class="is-mgtb-20 is-flex">
      <view class="is-flex-1">
        <col-button type="default" @click="reset">重置</col-button>
      </view>
      <view style="width: 100rpx"></view>
      <view class="is-flex-1">
        <col-button type="primary" @click="submit">提交</col-button>
      </view>
    </view>
  </view>
</template>
<script>
  import { checker } from 'colorful-uni';
  export default {
    data() {
      return {
        form: {
          name: "",
          intro: "",
          phone: "",
        },
      };
    },
    methods: {
      reset() {
        this.form = {
          name: "",
          intro: "",
          phone: "",
        };
      },
      submit() {
        let rules = [
          {
            name: "name",
            rule: ["required"],
            msg: ["请输入姓名"],
          },
          {
            name: "intro",
            rule: ["required"],
            msg: ["请输入简介"],
          },
          {
            name: "phone",
            rule: ["required", "!isMobile"],
            msg: ["请输入手机号", "请输入正确手机号"],
          },
        ];
        let checkRes = checker.validation(this.form, rules);
        if (checkRes) {
          this.$_u.tips.toast(checkRes, "info");
          return;
        }
        this.$_u.tips.toast("校验成功", "success");
      },
    },
  };
</script>

API

Methods

名称说明
required是否必填项
isMobile是否为手机号
isEmail是否为邮箱
isCarNo是否为车牌
isIdCard是否为身份证号
isAmount是否为金额,只允许保留两位小数
isNum是否为数字
isZh是否为中文
isEn是否为英文
isEnAndNum是否为8~20位数字和字母组合
isEnOrNum是否为英文或者数字
isSpecial是否包含特殊字符
isSpecialZh是否包含中文特殊字符
isEmoji是否包含表情
isDate是否为日期 2019-10-12
isUrl是否为链接
isSame是否相同isSame:key
isRange是否在范围内isRange:[Number,Number]
minLength最小长度minLength:Number
maxLength最大长度maxLength:Number