# 数据校验

# 简单数据验证

只验证单个数据是否符合规范 import {Check} from 'sjfx'

方法 说明 备注
isChinaMobile(value) 是否中国手机号码 以1开头的11位数字
isSeatNo(value) 是否座机号码 以0开头的11位-12位数字
isUrl(value) 是否为合法网址 仅接受http和https
isCode(value,len) 是否合法验证码 长度为len的数字,len默认为4
isChinese(value) 是否为汉字且不为空 /^[\u0391-\uFFE5]+$/
isSafe(value) 是否安全文本 禁止'"<>/\
isNotSymbol(value) 仅允许中文、数字、字母(禁止字符、换行等)
isIp(value) 判断是否合法IP地址 当前仅允许IP4,暂未支持IP6

# Validate表单验证插件

# DEMO

import {Validate} from 'sjfx'

export default {
  data() {
    return {
      formData: {
          idCard: '123456789012345678',
          userName: 'admin',
          passWord: '123',
          passWord2: '123',
          code: '1234'
      },
      validate: undefined
    }
  },
  created() {
    this.validate = new Validate(this.formData, {
      userName: {
        label: '用户名',
        rule: 'notEmpty'
      },
      passWord: {
        label: '密码',
        rule: 'notEmpty'
      },
      passWord2: {
        label: '确认密码',
        rule: 'notEmpty,same[passWord]'
      },
	  code:{
        label: '验证码',
        rule: 'custom',
		reg:/^\d{4}$/,
		errMsg:'请输入4位数的验证码'
	  },
	  idCard:{
        label: '身份证号',
        rule: 'function',
		fun:function(value){
			return value.length===18;
		},
		errMsg:'请输入4位数的验证码'
	  }
    });

  },
  methods: {
    login() {	
		this.validate.checkPro().then(data=>{
		 // 验证通过执行代码
		}).catch(errs=>{
		
		});
    }
  }
}

# 支持的验证规则(多个rule用,隔开即可)

方法 说明 参数说明
notEmpty 不能为空
safe 禁止'"/<>
noSymbol 只允许使用中文 数字 字母
mobile 手机号码(1开头的11位数字)
int 整数 支持正数和负数
natural 自然数 >=0的正整数
chinese或cn 仅允许输入汉字
en 仅允许输入英文字母
account 仅允许输入数字和字母和下划线
custom 自定义正则表达式 需同时传入reg属性(正则表达式)
function 自定义函数验证 需同时传入fun属性(验证方法),验证通过需返回true,不通过需返回false
min[1] 至少需要输入1位数字
max[10] 最多可需要输入10位数字
len[1-10] 长度限定1-10
same[target] 输入值必须与target的输入值相同 target也必须定义,否则不能正常输出提示,例:{ passWord: { label: '密码', rule: 'notEmpty', }, passWord2: { label: '确认密码', rule: 'notEmpty,same[passWord]' } }

# 方法

# check(data)

该方法返回的是一个对象。 如果在实例化Validate对象以后,解除了对验证目标的对象引用,则需要在check方法中传入新的验证目标。

{
	"errors": [
		{"key": "userName", "msg": "请输入用户名"},
		{"key": "passWord", "msg": "请输入密码"}],
	"success": false
}

# checkPro(data)

该方法是在内部调用check方法,然后返回一个Promise对象。 data即验证目标,errserrors

		this.validate.checkPro().then(data=>{
		 // 验证通过执行代码
		}).catch(errs=>{
		
		});

# errMsg:自定义错误消息

Last Updated: 1/14/2020, 3:34:31 PM