JS--easyui通用验证
// JavaScript Document $.extend($.fn.validatebox.defaults.rules, {
Composite_validation:
{
validator: function (value, param) {
var mReg = new RegExp(param[0]); //传递过来的正则字符串中的"\"必须是"\\"
if (!mReg.test(value)) {
$.fn.validatebox.defaults.rules.Composite_validation.message = param[1];
return false;
}
else {
var postdata = {};
postdata[param[3]] = value;
var result = $.ajax({
url: param[2],
data: postdata,
async: false,
type: "post",
dataType: "json"
}).responseText;
result = JSON.parse(result);
if (!result.success) {
$.fn.validatebox.defaults.rules.Composite_validation.message = result.message;
return false;
}
else {
return true;
}
}
},
message: ''
}, sockdate: {
validator: function (value, param) {
//var s = $("input[name="+param[0]+"]").val();
//因为日期是统一格式的所以可以直接比较字符串 否则需要Date.parse(_date)转换
value = value.replace(/-/g, "/");//替换字符,变成标准格式
var d1 = new Date(Date.parse(value));
var d2 = new Date();
return d1.format("yyyyMMdd") >= d2.format("yyyyMMdd");
},
message: '到货日期必须大于或等于当前日期'
},
URL: {
validator: function (value, param) {
return /^((http|https):\/\/(\w+:{0,1}\w*@)?(\S+)|)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/.test(value);
},
message: '请输入URL'
},
CHS: {
validator: function (value, param) {
return /^[\u0391-\uFFE5]+$/.test(value);
},
message: '请输入汉字'
},
ZIP: {
validator: function (value, param) {
return /^[1-9]\d{5}$/.test(value);
},
message: '邮政编码不存在'
},
QQ: {
validator: function (value, param) {
return /^[1-9]\d{4,10}$/.test(value);
},
message: 'QQ号码不正确'
},
mobile: {
validator: function (value, param) {
return /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/.test(value);
},
message: '手机号码不正确!示例:13012341234'
},
tel: { // 电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)
validator: function (value, param) {
return /^((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/.test(value);
},
message: '电话号码不正确!示例:13012341234、0512-6234567、0512-6234567-0001'
},
text: {
validator: function (value, param) {
return /^[\u0391-\uFFE5\w]+$/.test(value);
},
message: '文本内容只允许汉字、英文字母、数字及下划线。'
}, validTag: {
validator: function (value, param) {
var valid = true;
if (value.length != param[0]) {
valid = false;
param[1] = '输入内容长度必须为:' + param[0];
} else if (!(/^[A-F0-9]{6}$/.test(value))) {
valid = false;
param[1] = '只允许输入[000000~FFFFFF]之间的标签ID。小贴士:输入标签ID后6位。';
}
return valid;
},
message: '{1}'
}, validTagExtend: {
validator: function (value, param) {
var valid = true;
if (value.length > param[0]) {
valid = false;
param[1] = '标签编号长度不能超过' + param[0];
} else if (!(/^[A-Z0-9]+$/.test(value))) {
valid = false;
param[1] = '标签编号必须是A-Z(大写)之间的英文字符或数字';
}
return valid;
},
message: '{1}'
}, validStation: {
validator: function (value, param) {
var valid = true;
if (value.length != param[0]) {
valid = false;
param[1] = '输入内容长度必须为:' + param[0];
} else if (!(/^[A-F0-9]{2}$/.test(value))) {
valid = false;
param[1] = '只允许输入[00~FF]之间的基站ID。';
}
return valid;
},
message: '{1}'
}, textLength: {
validator: function (value, param) {
var valid = true;
if (value.length < param[0] || value.length > param[1]) {
valid = false;
param[2] = '输入内容长度必须介于' + param[0] + '和' + param[1] + '之间';
} else if (!(/^[\u0391-\uFFE5\w\-\.]+$/.test(value))) {
valid = false;
param[2] = '文本内容只允许汉字、英文字母、数字、小数点、中线及下划线。';
}
return valid;
},
message: '{2}'
},
safepass: {
validator: function (value, param) {
var valid = true;
if (value.length > param[0]) {
valid = false;
param[1] = '至多输入 ' + param[0] + ' 字符';
} else if (!safePassword(value)) {
valid = false;
param[1] = '密码由字母、特殊字符和数字组成,至少6位';
}
return valid;
},
message: '{1}'
},
equalTo: {
validator: function (value, param) {
return value == $(param[0]).val();
},
message: '两次输入的字符不一至'
},
number: {
validator: function (value, param) {
return /^\d+$/.test(value);
},
message: '请输入数字'
},
number2: {
validator: function (value, param) {
return /^\+?[0-9]\d*$/.test(value);
},
message: '请输入大于零的数字'
},
idcard: {
validator: function (value, param) {
return idCard(value);
},
message: '请输入正确的身份证号码'
},
minLength: {
validator: function (value, param) {
return value.length >= param[0];
},
message: '至少输入 {0} 字符'
},
maxLength: {
validator: function (value, param) {
return value.length <= param[0];
},
message: '至多输入 {0} 字符'
},
length: {
validator: function (value, param) {
var len = $.trim(value).length;
return len >= param[0] && len <= param[1];
},
message: "输入内容长度必须介于{0}和{1}之间."
},
selectRequired: {
validator: function (value, param) {
var selectVal = $("input[name=" + param[0] + "]").val(); // $(param[0]).val();
return parseInt(selectVal) > -1;
},
message: '请选择'
},
areaCode: {
validator: function (value, param) {
var valid = true;
if (!(/^[A][0-9]{4}$/.test(value))) {
valid = false;
}
return valid;
},
message: '区域编号必须以A(大写)开头+4位数字,例如A0001'
},
shelfCode: {
validator: function (value, param) {
var valid = true;
if (!(/^[S][0-9]{5}$/.test(value))) {
valid = false;
}
return valid;
},
message: '货架编号必须以S(大写)开头+5位数字,例如S00001'
}
}); /* 密码由字母和数字组成,至少6位 */
var safePassword = function (value) {
return !(/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/.test(value));
}; var idCard = function (value) {
if (value.length == 18 && 18 != value.length) return false;
var number = value.toLowerCase();
var d, sum = 0, v = '10x98765432', w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], a = '11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91';
var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/);
if (re == null || a.indexOf(re[1]) < 0) return false;
if (re[2].length == 9) {
number = number.substr(0, 6) + '19' + number.substr(6);
d = ['19' + re[4], re[5], re[6]].join('-');
} else d = [re[9], re[10], re[11]].join('-');
if (!isDateTime.call(d, 'yyyy-MM-dd')) return false;
for (var i = 0; i < 17; i++) sum += number.charAt(i) * w[i];
return (re[2].length == 9 || number.charAt(17) == v.charAt(sum % 11));
} var isDateTime = function (format, reObj) {
format = format || 'yyyy-MM-dd';
var input = this, o = {}, d = new Date();
var f1 = format.split(/[^a-z]+/gi), f2 = input.split(/\D+/g), f3 = format.split(/[a-z]+/gi), f4 = input.split(/\d+/g);
var len = f1.length, len1 = f3.length;
if (len != f2.length || len1 != f4.length) return false;
for (var i = 0; i < len1; i++) if (f3[i] != f4[i]) return false;
for (var i = 0; i < len; i++) o[f1[i]] = f2[i];
o.yyyy = s(o.yyyy, o.yy, d.getFullYear(), 9999, 4);
o.MM = s(o.MM, o.M, d.getMonth() + 1, 12);
o.dd = s(o.dd, o.d, d.getDate(), 31);
o.hh = s(o.hh, o.h, d.getHours(), 24);
o.mm = s(o.mm, o.m, d.getMinutes());
o.ss = s(o.ss, o.s, d.getSeconds());
o.ms = s(o.ms, o.ms, d.getMilliseconds(), 999, 3);
if (o.yyyy + o.MM + o.dd + o.hh + o.mm + o.ss + o.ms < 0) return false;
if (o.yyyy < 100) o.yyyy += (o.yyyy > 30 ? 1900 : 2000);
d = new Date(o.yyyy, o.MM - 1, o.dd, o.hh, o.mm, o.ss, o.ms);
var reVal = d.getFullYear() == o.yyyy && d.getMonth() + 1 == o.MM && d.getDate() == o.dd && d.getHours() == o.hh && d.getMinutes() == o.mm && d.getSeconds() == o.ss && d.getMilliseconds() == o.ms;
return reVal && reObj ? d : reVal; function s(s1, s2, s3, s4, s5) {
s4 = s4 || 60, s5 = s5 || 2;
var reVal = s3;
if (s1 != undefined && s1 != '' || !isNaN(s1)) reVal = s1 * 1;
if (s2 != undefined && s2 != '' && !isNaN(s2)) reVal = s2 * 1;
return (reVal == s1 && s1.length != s5 || reVal > s4) ? -10000 : reVal;
}
};
JS--easyui通用验证的更多相关文章
- Easyui Ajax验证Form表单。。。
今天做项目用到easyui Ajax验证表单.本想自定义一个easyui的验证,查资料发现easyui 自带了一个通用的验证!见以下下截图. 后台返回值 true验证通过,返回false验证失 ...
- js 表单验证控制代码大全
js表单验证控制代码大全 关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:目录:1:js 字符串长度限制.判断字符长度 .js限制输入.限制不能输入.textarea 长 ...
- 基于easyui的验证扩展
基于easyui的验证扩展 ##前言 自己做项目也有好几年的时间了,一直没有时间整理自己的代码,趁春节比较闲,把自己以前的代码整理了一篇.这是基于easyui1.2.6的一些验证扩展,2012年就开始 ...
- easyui的验证
加一个JS来重写验证,文件名为:validator.js 内容为: //扩展easyui表单的验证 $.extend($.fn.validatebox.defaults.rules, { //验证汉子 ...
- 表单(上)EasyUI Form 表单、EasyUI Validatebox 验证框、EasyUI Combobox 组合框、EasyUI Combo 组合、EasyUI Combotree 组合树
EasyUI Form 表单 通过 $.fn.form.defaults 重写默认的 defaults. 表单(form)提供多种方法来执行带有表单字段的动作,比如 ajax 提交.加载.清除,等等. ...
- JS表单验证-12个常用的JS表单验证
JS表单验证-12个常用的JS表单验证 最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度 ...
- jquery.validation.js 表单验证
jquery.validation.js 表单验证 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuer ...
- JQuery EasyUI validatebox(验证框)
JQuery EasyUI validatebox(验证框) http://www.easyui.info/archives/602.html
- Jquery.validate.js表单验证插件的使用
作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...
- jquery.validate.js使用id验证控件
jquery.validate.js默认的是元素的name. 例如:<input name="username" id="username" size=& ...
随机推荐
- 九、c++容器
9.1 简介 容器库是类模板与算法的汇集,允许程序员简单地访问常见数据结构,例如队列.链表和栈. 有三类容器--顺序容器.关联容器和无序关联容器--每种都被设计为支持不同组的操作. 顺序容器:顺序容器 ...
- Java的多态-进阶
Java的多态——进阶 总括 Parent p = new Child(); 反之,Child() c = new Parent(); 会报错. 当使用多态方式调用方法时,首先检查父类中是否有该方法. ...
- 三种方法获取 lua时间戳
ngx.now() 返回:1523174287.735 毫秒级精度的时间戳(获取的是nginx缓存的时间戳,并非实时刷新, 如果希望刷新,可以在获取前一行加上 ngx.update_tim ...
- 2020ICPC 博弈题 纳新一百的石子游戏
https://ac.nowcoder.com/acm/contest/4010/C 这道题为尼姆博弈的其中一种裸类型: 要求求出前(1~n)堆的必胜方案. 对于这种类型,假如我们现在就前k堆,那么我 ...
- 1.BMap(百度地图)第二次加载显示不全
问题: bmap第一次加载显示没问题: 第二次 再次加载这个页面时,地图的显示出现了问题: . 分析问题出现原因:你要确保dom创建后且处于显示状态(即display不能为none)才能再次初始化地图 ...
- 吴裕雄 python 机器学习——数据预处理二元化OneHotEncoder模型
from sklearn.preprocessing import OneHotEncoder #数据预处理二元化OneHotEncoder模型 def test_OneHotEncoder(): X ...
- vs查看动态库依赖
dumpbin是VS自带的工具,进入Visual Studio 的命令提示 查看程序或动态库所依赖的动态库 dumpbin /dependents abc.exe 查看动态库的输出函数 dumpbi ...
- 共有T个硬币,其中Z个正面,F个反面,分为两堆,要如何操作使得两堆中的正面硬币数目相等。
类似题目如下(数值是可变化的) 你的面前有30个硬币,其中有10个正面朝上,20个反面朝上,混乱在一团. 要求:现在用厚布遮住你的眼睛.要你把30个硬币分成2团,每团正面朝上的硬币个数相等.问:你要怎 ...
- 作业1:使用go搭建一个web-server
todo1:搭建web-server的原理 todo2:go实现web-server
- 68 for循环2 for循环最简单的用法
#include <stdio.h> int main (void) { int i ; ; ; i<; i+=) //i+=2 等价于 i= i+2: { sum = sum + ...