(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验证的更多相关文章

  1. jQuery Validate自定义各种验证方法(转)

    一.封装自定义验证方法-validate-methods.js /***************************************************************** j ...

  2. jquery validate自定义checkbox验证规则和样式

    参考:http://blog.csdn.net/xh16319/article/details/9987847 自定义checkbox验证,“检查checkbox是否选中” jQuery.valida ...

  3. jQuery Validate自定义金钱验证,是否为金额格式,保留两位小数,并支持千分制货币格式

    //自定义函数实现 isMoney: function (value, element){ // return this.optional(element) || /(^[1-9]([0-9]+)?( ...

  4. jquery validate 自定义验证方法

    query validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方法 ...

  5. jquery validate 自定义验证方法 日期验证

    jquery validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方 ...

  6. jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)

    最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...

  7. aspx中的表单验证 jquery.validate.js 的使用 以及 jquery.validate相关扩展验证(Jquery表单提交验证插件)

    这一期我们先讲在aspx中使用 jquery.validate插件进行表单的验证, 关于MVC中使用 validate我们在下一期中再讲     上面是效果,下面来说使用步骤 jQuery.Valid ...

  8. ASP.NET MVC异步验证是如何工作的03,jquery.validate.unobtrusive.js是如何工作的

    在上一篇"ASP.NET MVC异步验证是如何工作的02,异步验证表单元素的创建"中了解了ASP.NET异步验证是如何创建表单元素的,本篇体验jquery.validate.uno ...

  9. jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. ...

随机推荐

  1. 「Django」Django内置email发送邮件

    Django内置email发送邮件 1.首先在settings.py文件设置相关参数 STATIC_URL = '/static/' # 设置邮件域名 EMAIL_HOST = 'smtp.163.c ...

  2. eclipse中toolbar位置的系统URI

    org.eclipse.ui.ide.IIDEActionConstants 这个类里存了系统toolbar,菜单等URI 定义自己的toolbar或者menu时,指定位置after=addition ...

  3. mapbox-gl空间分析插件turf.js使用介绍

    mapbox-gl能够方便地显示地图,做一些交互,但是缺少空间分析功能,比如绘制缓冲区.判断点和面相交等等. turf.js是一个丰富的用于浏览器和node.js空间分析库,官网 http://tur ...

  4. 题解 [JOI 2019 Final] 独特的城市

    题面 解析 首先有一个结论, 对一个点\(x\)有贡献的城市 肯定在它到离它较远的直径的端点的链上. 假设离它较远的端点是\(S\), 如果有一个点\(u\)不在\(x\)到\(S\)的链上, 却对\ ...

  5. ES6-12.Symbol

    Symbol是ES6新增的原始类型数据,引入的初衷是为了对象可以有永不重复的属性名. 所以属性名可以是字符串外,还可以是Symbol值: const a = Symbol("a") ...

  6. ueditor粘贴word图片无法显示的问题

    图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM ...

  7. Til the Cows Come Home ( POJ 2387) (简单最短路 Dijkstra)

    problem Bessie is out in the field and wants to get back to the barn to get as much sleep as possibl ...

  8. MySQL 跨版本主从复制时报错:ERROR 1794 (HY000): Slave is not configured or failed to initialize properly.

    背景: zabbix 数据库迁移,搭建主从,主是5.6.25,从是5.7.15,流式备份应用 redo.log 之后,change master 和reset slave 时报出如下错误 mysql& ...

  9. <cmath>库函数

    C++ cmath库中的函数 今天模拟,想调用<cmath>中的函数,然鹅...突然忘了,所以还是总结一下吧 写法 作用 int abs(int i) 返回整型参数i的绝对值 double ...

  10. 微信小程序开发-踩坑

    异步请求处理 详情描述: 微信小程序的wx.request({})请求时异步处理,以下代码 wx.reuest({ url:"https://XXXA", method:" ...