JQuery Validate - 自定义js验证
(function (window, $) {
var validResult = {}; var checkObjs = {
/**
* 检查输入的一串字符是否全部是数字
* 输入:str String
* 返回:true 或 flase; true表示为数字
*/
checkNum: function (str) {
return /\D/.test(str);
}, /**
* 检查输入的一串字符是否为小数
* 输入:str String
* 返回:true 或 flase; true表示为小数
*/
checkDecimal: function (str) {
return /^-?\d+(\.\d+)?$/g.test(str);
}, /**
* 检查输入的一串字符是否为整型数据
* 输入:str 字符串
* 返回:true 或 flase; true表示为小数
*/
checkInteger: function (str) {
return /^[-+]?\d*$/.test(str);
}, /**************************************************************************************/
/*************************************字符的验证*****************************************/
/**************************************************************************************/ /**
* 检查输入的一串字符是否是字符
* 输入:str String
* 返回:true 或 flase; true表示为全部为字符 不包含汉字
*/
checkStr: function (str) {
return /[^\x00-\xff]/g.test(str);
}, /**
* 检查输入的一串字符是否包含汉字
* 输入:str String
* 返回:true 或 flase; true表示包含汉字
*/
checkChinese: function (str) {
return escape(str).indexOf("%u") != -1;
}, /**
* 检查输入的邮箱格式是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkEmail: function (str) {
return (/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(str) && str.length <= 25);
//return /[A-Za-z0-9_-]+[@](\S*)(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*)/g.test(str);
}, /**
* 检查输入的手机号码格式是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkMobilePhone: function (str) {
return /^0{0,1}(13[0-9]|145|147|15[0-3]|15[5-9]|180|18[5-9])[0-9]{8}$/.test(str);
//return /^\d{11}$/.test(str);
}, /**
* 检查输入的固定电话号码是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkTelephone: function (str) {
return /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(str);
},
/**
* 检查支付密码格式是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkNick: function (str) {
return /^[\u4e00-\u9fa5a-zA-Z0-9_-]{4,25}$/.test(str.replace(/[\u4e00-\u9fa5]{1}/g, 'xx'));
//return /^(?!\d)[\u4e00-\u9fa5a-zA-Z0-9_-]{4,25}$/.test(str);
},
/**
* 检查QQ的格式是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkQQ: function (str) {
return /^\d{5,10}$/.test(str);
}, /**
* 检查邮政编码格式是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkPostCode: function (str) {
return /^\d{6}$/.test(str);
}, /**
* 检查输入的身份证号是否正确
* 输入:str 字符串
* 返回:true 或 flase; true表示格式正确
*/
checkCard: function (str) {
//15位数身份证正则表达式
var arg1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//18位数身份证正则表达式
var arg2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/;
return arg1.test(str) || arg2.test(str);
}, /**
* 检查输入的IP地址是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkIP: function (str) {
var arg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
return arg.test(str);
}, /**
* 检查输入的URL地址是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkURL: function (str) {
return /(http[s]?|ftp):\/\/[^\/\.]+?\..+\w$/i.test(str);
}, /**
* 检查输入的字符是否具有特殊字符
* 输入:str String
* 返回:true 或 flase; true表示包含特殊字符
* 主要用于注册信息的时候验证
*/
checkQuote: function (str) {
var items = new Array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "{", "}", "[", "]", "(", ")");
items.push(":", ";", "'", "|", "\\", "<", ">", "?", "/", "<<", ">>", "||", "//");
items.push("admin", "administrators", "administrator", "管理员", "系统管理员");
items.push("select", "delete", "update", "insert", "create", "drop", "alter", "trancate");
str = str.toLowerCase();
for (var i = 0; i < items.length; i++) {
if (str.indexOf(items[i]) >= 0) {
return true;
}
}
return false;
}, /**
* 检查输入的用户名是否具有特殊字符
* 输入:str String
* 返回:true 或 flase; true表示包含特殊字符
* 主要用户注册和信息修改
*/
checkUserName: function (str) {
return /^[a-zA-Z\u4e00-\u9fa5]{6,25}/.test(str.replace(/[\u4e00-\u9fa5]{1}/g, 'xx')); ///^[0-9a-zA-Z\u4e00-\u9fa5_]{4,16}$/;
}, /**************************************************************************************/
/*************************************时间的验证*****************************************/
/**************************************************************************************/ /**
* 检查日期格式是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
* 注意:此处不能验证中文日期格式
* 验证短日期(2015-12-15)
*/
checkDate: function (str) {
//var value=str.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/);
var value = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if (value) {
var date = new Date(value[1], value[3] - 1, value[4]);
return (date.getFullYear() == value[1] && (date.getMonth() + 1) == value[3] && date.getDate() == value[4]);
}
return false;
}, /**
* 检查时间格式是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
* 验证时间(10:57:10)
*/
checkTime: function (str) {
var value = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/)
if (value) {
if (!(value[1] > 24 || value[3] > 60 || value[4] > 60)) {
return true;
}
}
return false;
}, /**
* 检查验证码长度是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkCaptcha: function (str) {
return str.length === 4;
}, /**
* 检查密码长度是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkPassword: function (str) {
return str.length >= 6 && str.length <= 20;
}, /**
* 检查动态验证码长度是否正确
* 输入:str String
* 返回:true 或 flase; true表示格式正确
*/
checkVerCode: function (str) {
return str.length === 6;
}, /**
* 检查两次输入是否相等
* 输入:pwd String,pwd2 String
* 返回:true 或 flase; true表示格式正确
*/
checkEqual: function (str, str2) {
return "" !== str && str === str2;
}, /**
* ajax验证用户名是否已使用
* state:1未注册,-1已注册
*/
ajaxCheckUserName: function () {
$.ajax({
url: "/home/validusername?username=" + obj.node.val(),
dataType: "json",
timeout: 3000,
type: "post",
success: function (ret) {
if (ret.State > 0) validResult["ajaxUserName"] = true;
}
});
}, /**
* ajax验证邮箱是否已使用
* state:1未注册,-1已注册
*/
ajaxCheckEmail: function (val) {
$.ajax({
url: "/home/validemail?email=" + val,
dataType: "json",
timeout: 3000,
type: "post",
success: function (ret) {
if (ret.State > 0) validResult["ajaxEmail"] = true;
}
});
},
ajaxCheckMobile: function (val) {
$.ajax({
url: "/home/validenmobile?mobile=" + val,
dataType: "json",
timeout: 3000,
type: "post",
success: function (ret) {
if (ret.State > 0) validResult["ajaxMobile"] = true;
}
});
},
/**
* 发送动态码
*/
ajaxSendCode: function (val) {
var _this = this;
if ($(_this).hasClass("btn-disabled")) return false;
$.ajax({
url: "/home/sendencode",
type: "post",
data: "mobile=" + val,
timeout: 5000,
dataType: "json",
beforeSend: function (xhr) {
$(_this).addClass("btn-disabled").text("正在发送...");
},
error: function () {
$(_this).text("发送验证码").removeClass("btn-disabled");
},
success: function (ret) {
console.log(ret);
if (ret.State > 0) {
var i = 60;
var timer = setInterval(function () {
$(_this).text(--i + "秒后可重试");
if (i === 0) {
clearInterval(timer);
$(_this).text("重新获取").removeClass("btn-disabled");
}
}, 1000);
validResult["ajaxSendCode"] = true;
} else {
$(_this).text("发送验证码").removeClass("btn-disabled");
}
}
})
}, } var com = {
getBaseInfo: function (callback) {
$.post("/enterprise/getbaseinfo", null, function (ret) {
if (ret.State > 0 && callback) callback(ret.Data);
}, "json");
},
getRegion: function (code, callback) {
$.post("/home/region/" + code, null, function (ret) {
if (ret.State > 0 && callback) callback(ret.Data);
}, "json");
},
getProperty: function (callback) {
$.post("/home/property", null, function (ret) {
if (ret.State > 0 && callback) callback(ret.Data);
}, "json");
},
getIndustry: function (callback) {
$.post("/home/industry", null, function (ret) {
if (ret.State > 0 && callback) callback(ret.Data);
}, "json");
},
getScale: function (callback) {
$.post("/home/scale", null, function (ret) {
if (ret.State > 0 && callback) callback(ret.Data);
}, "json");
},
updateProperty: function (id) {
$.post("/enterprise/updateproperty/" + id);
},
updateIndustry: function (id) {
$.post("/enterprise/updateindustry/" + id);
},
updateScale: function (id) {
$.post("/enterprise/updatescale/" + id);
},
getReceiveAdds: function (index, callback) {
$.post("/enterprise/receiveadds/" + index, null, function (ret) {
if (callback && ret.State > 0) callback(ret.Data);
}, "json");
},
getSendAdds: function (index, callback) {
$.post("/enterprise/sendadds/" + index, null, function (ret) {
if (callback && ret.State > 0) callback(ret.Data);
}, "json");
},
getEmployees: function (callback) {
$.post("/enterprise/getemployees", null, function (ret) {
if (callback && ret.State > 0) callback(ret.Data);
}, "json");
}
}; var tempModal, modalDialog, modalWrap; var modal = function () {
var modal = $('<div class="modal"><div class="modal-dialog"><h3 class="modal-title"></h3><div class="modal-msg"></div></div></div><div class="modal-wrap"></div>'); function show(title, msg) {
if (title)
modalDialog.find(".modal-title").text(title);
if (msg)
modalDialog.find(".modal-msg").text(msg);
modalDialog.show();
modalWrap.addClass("in");
modalDialog.addClass("in");
}
return {
createModal: modal,
modalEvent: function () {
modalDialog.on("click", function () {
modalWrap.removeClass("in");
modalDialog.removeClass("in");
modalDialog.hide();
});
},
show: show
}
} window.validate = checkObjs;
window.validResult = validResult;
window.com = com;
window.modal = {
initModal: function () {
tempModal = modal();
$("body").append(tempModal.createModal);
modalDialog = $(".modal"), modalWrap = $(".modal-wrap");
tempModal.modalEvent();
},
show: function (title, msg, callback) {
if (tempModal)
tempModal.show(title, msg);
}
}; })(window, jQuery);
JQuery Validate - 自定义js验证的更多相关文章
- jQuery Validate自定义各种验证方法(转)
一.封装自定义验证方法-validate-methods.js /***************************************************************** j ...
- jquery validate自定义checkbox验证规则和样式
参考:http://blog.csdn.net/xh16319/article/details/9987847 自定义checkbox验证,“检查checkbox是否选中” jQuery.valida ...
- jQuery Validate自定义金钱验证,是否为金额格式,保留两位小数,并支持千分制货币格式
//自定义函数实现 isMoney: function (value, element){ // return this.optional(element) || /(^[1-9]([0-9]+)?( ...
- jquery validate 自定义验证方法
query validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方法 ...
- jquery validate 自定义验证方法 日期验证
jquery validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方 ...
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...
- aspx中的表单验证 jquery.validate.js 的使用 以及 jquery.validate相关扩展验证(Jquery表单提交验证插件)
这一期我们先讲在aspx中使用 jquery.validate插件进行表单的验证, 关于MVC中使用 validate我们在下一期中再讲 上面是效果,下面来说使用步骤 jQuery.Valid ...
- ASP.NET MVC异步验证是如何工作的03,jquery.validate.unobtrusive.js是如何工作的
在上一篇"ASP.NET MVC异步验证是如何工作的02,异步验证表单元素的创建"中了解了ASP.NET异步验证是如何创建表单元素的,本篇体验jquery.validate.uno ...
- jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中
一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW 访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. ...
随机推荐
- EF 多表联查方法
两个表的linq private DataContext dc; dc = new DataContext(); var heji = (from da in dc.q1 ...
- BZOJ 3864 Hero meet devil (状压DP)
最近写状压写的有点多,什么LIS,LCSLIS,LCSLIS,LCS全都用状压写了-这道题就是一道状压LCSLCSLCS 题意 给出一个长度为n(n<=15)n(n<=15)n(n< ...
- C#第一章 第一个C#程序
第一个C#程序 namespace 是C#中组织代码的方式,它的作用那个类似java中的包 using 在Java中作用如果导入其他包 应该是用import关键字而在C#中应使用using关键字来引用 ...
- Oracle 物理结构(二) 文件-口令文件
一.口令文件作用 1.口令文件基本介绍 Oracle数据库口令文件存放有超级用户的口令及其他特殊用户的用户名/口令. 口令文件在数据库创建时,自动创建,存放在$ORACLE_HOME/dbs. 此文件 ...
- 014_编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件
#!/bin/bash#执行脚本时,需要给脚本添加位置参数 带参for i in "ls *.$1"do #去尾 mv $i ${i%.*}.$2done
- 012_使用死循环实时显示 eth0 网卡发送的数据包流量
#!/bin/bash while : do echo '本地网卡 eth0 流量信息如下: ' #grep输出所找整行,awk直接输出第5列 ifconfig eth0 | grep "R ...
- python 版本及pip安装相关
python2与python3 由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因 ...
- Qt ASSERT:"QMetaObjectPrivate::get(smeta)->revision>= 7"in file kernel\qobject.cpp,line 2646
qt5.6.1所做的工程在运行时出现该问题:该问题说的是信号槽中 函数的参数不匹配. 在qt4.8.4 中QThread 中查到assitant中定义void QThread::finished () ...
- Docker容器数据券
1.是什么? 2.能干嘛? 3.数据卷 ——容器内添加 方式一:直接命令添加 1).命令 2).在宿主机上新建并添加内容 3).查看容器内相应共享文件夹,发现宿主机的文件夹下发生变化,会同步到容器内的 ...
- WINRAR弹窗堆栈
0:000> db 004ddfa8004ddfa8 6f 00 70 00 65 00 6e 00-00 00 00 00 2d 00 6e 00 o.p.e.n.....-.n. 03063 ...