1.0.3 • Published 7 years ago
verification-puge v1.0.3
安装使用
模块
在应用中引用 validator.min.js 文件
# npm 安装
$ npm install verification-puge --save
# yarn 安装
$ yarn add verification-puge在 .js 文件中调用
// 字符串验证
var validator = require('verification-puge');
var v = new validator();
v.isEmail('wowohoo@qq.com');
v.isIp('192.168.23.3');
v.isFax('');
// 表单验证
var a = new validator('example_form',[
{...}
],function(obj,evt){
if(obj.errors){
// 判断是否错误
}
})客户端使用
在应用中引用 validator.js 文件, 手动下载并链接HTML中的 validator.js
<script type="text/javascript" src="./validator.js"></script>在JS中使用方法。
<script type="text/javascript">
var v = new Validator();
v.isEmail('wowohoo@qq.com');
v.isIp('192.168.23.3');
</script>说明文档
new Validator(formName, option, callback)
formName
formName 是标签中<form> 中的 id 或者 name 的值,如上面的example_form
option
name-> input 中name对应的值display-> 验证错误要提示的文字{{这个中间是name对应的值}}rules-> 一个或多个规则(中间用|间隔)is_email-> 验证合法邮箱is_ip-> 验证合法 ip 地址is_fax-> 验证传真is_tel-> 验证座机is_phone-> 验证手机is_url-> 验证URLis_money-> 金额格式验证is_english-> 字母验证⚠️is_chinese-> 中文验证is_percent-> 验证百分比⚠️required-> 是否为必填max_length-> 最大字符长度min_length-> 最小字符长度noSpecial-> 判断是否没有特殊字符same(field)-> 指定字段内容是否相同different(field)-> 拒绝与某个字段相等,比如登录密码与交易密码情况contains(field)-> 直接判断字符串是否相等accepted(field)-> 用于服务条款,是否同意时相当有用,不限制checkbox与radio,有可能submit button直接附带value情况
{
//name 字段
name: 'email',
display:"你输入的不{{email}}是合法邮箱|不能为空|太长|太短",
// 验证条件
rules: 'is_email|max_length(12)'
// rules: 'valid_email|required|max_length(12)|min_length(2)'
}自定义正则
自定义正则,以regexp_开始
{
//name 字段
name: 'sex',
// 对应下面验证提示信息
display:"请你选择性别{{sex}}|请输入数字",
//自定义正则`regexp_num`
regexp_num:/^[0-9]+$/,
// 验证条件,包括应用自定义正则`regexp_num`
rules: 'required|regexp_num'
}callback
var validator = new Validator('example_form',[
{...},{...}
],function(obj,evt){
//obj = {
// callback:(error, evt, handles)
// errors:Array[2]
// fields:Object
// form:form#example_form
// handles:Object
// isCallback:true
// isEmail:(field)
// isFax:(field)
// isIp:(field)
// isPhone:(field)
// isTel:(field)
// isUrl:(field)
// maxLength:(field, length)
// minLength:(field, length)
// required:(field)
//}
if(obj.errors.length>0){
// 判断是否错误
}
})特殊情况直接提交
var validator = new Validator('example_form',[
{...},{...}
],function(obj,evt){
//obj = {
//}
if(obj.errors.length>0){
// 判断是否错误
}
})
validator.passes().form.submit();例子
字符串验证
var v = new Validator();
v.isEmail('wowohoo@qq.com'); // -> 验证合法邮箱 |=> 返回布尔值
v.isIp('192.168.23.3'); // -> 验证合法 ip 地址 |=> 返回布尔值
v.isFax(''); // -> 验证传真 |=> 返回布尔值
v.isPhone('13622667263'); // -> 验证手机 |=> 返回布尔值
v.isTel('021-324234-234'); // -> 验证座机 |=> 返回布尔值
v.isUrl('http://JSLite.io'); // -> 验证URL |=> 返回布尔值
v.maxLength('JSLite',12); // -> 最大长度 |=> 返回布尔值
v.minLength('JSLite',3); // -> 最小长度 |=> 返回布尔值
v.required('23'); // -> 是否为必填(是否为空) |=> 返回布尔值表单中验证
点击按submit按钮验证
var validator = new Validator('example_form',[
{
//name 字段
name: 'email',
display:"你输入的不{{email}}是合法邮箱|不能为空|太长|太短",
// 验证条件
rules: 'is_email|max_length(12)'
// rules: 'valid_email|required|max_length(12)|min_length(2)'
},{
//name 字段
name: 'sex',
display:"请你选择性别{{sex}}",
// 验证条件
rules: 'required'
}
],function(obj,evt){
if(obj.errors){
// 判断是否错误
}
})没有submit验证
var validator = new Validator('example_form',[
{
//name 字段
name: 'email',
display:"你输入的不{{email}}是合法邮箱|不能为空|太长|太短",
// 验证条件
rules: 'is_email|max_length(12)'
// rules: 'valid_email|required|max_length(12)|min_length(2)'
},{
//name 字段
name: 'sex',
display:"请你选择性别{{sex}}|请输入数字",
regexp_num:/^[0-9]+$/,
// 验证条件
rules: 'required|regexp_num'
}
],function(obj,evt){
if(obj.errors){
// 判断是否错误
}
})
validator.validate()参考
借鉴这些优秀的库,撸出此玩意儿。
- chriso/validator.js一个字符串验证器和转换类型的库
- rickharrison/validate.js validate.js是一个轻量级的JavaScript表单验证库灵感来源CodeIgniter。