5 Star 40 Fork 6

NullFeng / JsValidate

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

JsValidate

项目介绍

这是一个非常迷你的数据验证器,至于迷你到那种程度,就不形容了,一看便知!

  • 兼容 AMDCMD 规范
  • 核心代码50+行 绝对轻量级(确定绝对?)
  • 支持单个数据和数据批量验证
  • 扩展性好 支持自定义验证(函数/正则)
  • 使用简单 几句代码便可完成复杂的验证
  • 编不下去了... -_-b
    下面是内置的规则,比较少,要添加的话,网上一搜一大把
{
	'number': '$0只能是数字',
  	'chinese': '$0只能是中文',
  	'email': '$0格式不正确',
  	'idcard': '$0格式不正确',
  	'phone': '$0格式不正确',
	'require': '$0不能为空',
	'length': '$0长度只能是$1到$2个字符',
	'min': '$0至少$1个字符',
	'max': '$0不能超过$1个字符',
	'eq': '$0只能是$1',
	'neq': '$0不能为$1',
	'gt': '$0不能小于$1',
	'lt': '$0不能大于$1',
	'between': '$0值只能在$1到$2之间',
	'in': '$0只能取$n',
	
}

使用说明

为字段名增加中文名称

直接在规则中写上"@+名称"即可 举个栗子,不加@

{'name':'require!必须写$0'}
//必须写name

加上之后

{'name':'@姓名|require!必须写$0'}
//必须写姓名

自定义消息

在规则名称后面加上“!”则为该条规则的自定义消息
$0为字段名称
$1..$n依次为后面的参数
$n直接显示为参数(逗号隔开)
:1表示该参数为一个字段
例如'confirm': '$0与:1不一致'其中:1将替换为字段名而不是参数

{'name':'@姓名|require!必须写$0'}
//输出 必须写姓名

开始使用

先引入 <script src='Validate.js'></script> 然后直接使用

/**
 * 检查数据
 * @param  rule  单或多条规则
 * @param  field 要检查的数据
 * @param  all   是否返回全部错误
 * @return       检查通过返回true 失败返回 错误消息或错误消息集合
 */
Validate.check(rule,field,all);
/**
 * 添加或修改规则
 * @param  name 规则名称
 * @param  rule 规则内容(函数或正则)
 * @param  msg  消息
 * @return      this
 */
Validate.rule(name,rule,msg);

使用示例

var rule = {
	'name':'@姓名|require|chinese',
	'idcard':'@身份证号码|require|idcard',
	'type':'@类型|require|in:0,1',
	'qq':'@QQ号码|require|number',
	'email':'@电子邮箱|require|email',
	'password':'@密码|require|len:6,10',
	'password2':'@确认密码|confirm:password!确认密码不一致',
	'like':'@喜欢的数字|require|in:0,1,2,3,4,5,6'
},data = {
	'name':'nullfeng',
	'idcard':'50023619951105256a',
	'type':0,
	'qq':'',
	'email':'nullfeng(at)163.com',
	'password':'123123',
	'password2':'456456',
	'like': '8'
};
/**
 * 验证全部的错误
 */
var result = Validate.check(rule,data,true);
console.log(result);
//output:
/*{
	email:"电子邮箱格式不正确"
	idcard:"身份证号码格式不正确"
	like:"喜欢的数字只能取0,1,2,3,4,5,6"
	name:"姓名只能是中文"
	password2:"确认密码不一致"
	qq:"QQ号码不能为空"
}*/
/**
 * 验证单个错误
 */
result = Validate.check('@昵称|chinese','nullfeng');
console.log(result);
// output: 昵称只能是中文

增加自定义规则(支持正则和函数)

//增加一个只能是指定值的规则
Validate.rule('diy_rule',function(v,m){
	//this.data 获取要验证的数据 如 this.field['username']
	//this.test 执行已有的验证规则 如 this.test.eq('2',2);
    return v==m;
},'$0 只能是$1');
//使用
var test = '23';
var result = Validate.check(test,'@测试变量|diy_rule:24');
console.log(result);
//输出:测试变量 只能是24

//增加一个只能是5开头的规则
Validate.add('diy_rule',/^5\w+/,'$0 只能是5开头哦');
//使用
var test = 'abcd';
var result = Validate.check(test,'@测试变量|diy_rule');
console.log(result);
//输出:测试变量 只能是5开头哦

check()返回值

验证通过返回真true,失败直接返回错误消息

var result = Validate.check(...);
if(result!==true){
    //验证不通过
    alert(result);
}

更新日志

20180621

  • 优化核心代码(仅49行)
  • 修复confirm消息提示错误
  • 优化@字段名可以放在任意位置

后期目标

  • 支持异步(远程)验证
  • 增加对表单的自动验证支持
  • 具体实现看心情 :)

空文件

简介

一个极其简单、快速的js验证器 展开 收起
JavaScript
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/nullfeng/js_validate.git
git@gitee.com:nullfeng/js_validate.git
nullfeng
js_validate
JsValidate
master

搜索帮助