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. ...
随机推荐
- 5、获取Class中的字段
5.获取Class中的字段 5.1 getField(String name) 只获取共有的字段 返回一个 Field对象,它反映此表示的类或接口的指定公共成员字段 类对象. /** * 获取字节码文 ...
- FOR XML PATH 函数用法
一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看 ...
- How to connect oracle databse
1. 下載客戶端Oracle Developer Tools for Visual Studio_32bit 安裝后通過配置tnsnames.ora指定連接 C:\app\user name\prod ...
- [Luogu] 树状数组
https://www.luogu.org/problemnew/show/P3374 单点修改,区间查询 #include <iostream> #include <cstdio& ...
- C/C++语言之由数字26引起的文件的数据保存与读取调试。
首先在VS2010中遇到的问题是,建立了一个结构体 struct position{ int x; int y; }: 然后用此结构体声明一个数组rout[8]; for(int i=0;i<8 ...
- thinkphp5 大量数据批量插入数据库的解决办法
对于数据量很小,怎么玩都是可以的. but!!! 如果有几十万或者百万级别的数据,该怎么处理,请往下面看
- 测试的Python、 Java语言之争
现在测试行业如果不会开发语言的话是很难找到工作的,即使是一些功能测试的岗位也会要求代码语言作为技术储备,因为如果做自动化测试或者测试工具脚本开发或者接口测试等都离不开开发语言,那作为测试如果没有代码经 ...
- scrapy框架之下载中间件
介绍 中间件是Scrapy里面的一个核心概念.使用中间件可以在爬虫的请求发起之前或者请求返回之后对数据进行定制化修改,从而开发出适应不同情况的爬虫. “中间件”这个中文名字和前面章节讲到的“中间人”只 ...
- 十八、centos7网络属性配置
一.为什么需要这个 服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的.Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序.为解决这类 ...
- 总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .
总结:Apache/Tomcat/JBOSS/Nginx区别 .1.Apache是Web服务器,Tomcat是应用(Java)服务器.Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用. ...