/**
* 注册验证对象
*
* @param id
* 表单控件id(支持input和textarea)
* @param func
* function(id, val, obj)
* @param lableId
* 显示验证信息/结果的元素id
* @return {valid : false, msg : '错了' }
*/
function validateInput(id, func, lableId) {
$('#' + id).data("validate", func);
if (lableId) {
$('#' + id).data("lableId", lableId);
}
$('#' + id).bind('change', function () {
checkUnit($('#' + id));
});
}
/**
* 验证表单
*
* @param formId
* 表单ID
* @return
*/
function validate(formId) {
var vali = true;
var macCod = '';
// 迭代form
$('.errorMsgClass').empty();
$(':text', '#' + formId).each(function (i, obj) {
macCod = macCod + $(obj).attr('id');
if (!checkUnit(obj)) {
vali = false;
}
});
$(':password', '#' + formId).each(function (i, obj) {
macCod = macCod + $(obj).attr('id');
if (!checkUnit(obj)) {
vali = false;
}
});
$('select', '#' + formId).each(function (i, obj) {
macCod = macCod + $(obj).attr('id');
if (!checkUnit(obj)) {
vali = false;
}
});
$('textarea', '#' + formId).each(function (i, obj) {
macCod = macCod + $(obj).attr('id');
if (!checkUnit(obj)) {
vali = false;
}
});
$(':checkbox', '#' + formId).each(function (i, obj) {
macCod = macCod + $(obj).attr('id');
if (!checkUnit(obj)) {
vali = false;
}
});
$('#helloword').val(macCod + helloword);
return vali;
}
/**
* @param obj
* 待验证元素
* @param lableId
* 显示消息元素
* @returns {Boolean}
*/
function checkUnit(obj) {
var id = $(obj).attr('id');
var val = $(obj).val();
var func = $(obj).data("validate");
var lableId = $(obj).data("lableId");
if (!$(obj).is(":hidden")) {
// 如果是可见的控件才验证
if (id && func) {
var result = func(id, val, obj);
$('.errorMsgClass', $(obj).parent()).remove();
if (result.valid) {
// 验证成功
} else {
// 验证失败// 显示失败提示信息
if (lableId) {
$('#' + lableId).html(
'
'
+ result.msg + '
');
} else {
$(obj).parent().append(
''
+ result.msg + '
');
}
return false;
}
}
}
return true;
}
/**
* 验证空返回true
*
* @param val
* @return
*/
function valid_isNull(val) {
try {
val = val.replace(/(^\s*)|(\s*$)/g, "");
if (!val) {
return true;
} else {
return false;
}
} catch (e) {
return true;
}
}
/**
* 验证URI
*
* @param obj
* @returns {Boolean}
*/
function valid_isUri(obj) {
reg = /^http|ftp:\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
if (!reg.test(obj)) {
return false;
} else {
return true;
}
}
/**
* 验证是数字返回true
*
* @param val
* @return
*/
function valid_isNumber(val) {
var reg = new RegExp("^[0-9]*$");
if (!reg.test(val)) {
return false;
} else {
return true;
}
}
/**
* 验证val长度大于maxnum返回
*
* @param val
* @param maxnum
* @return
*/
function valid_maxLength(val, maxnum) {
try {
if (val.length > maxnum) {
return true;
} else {
return false;
}
} catch (e) {
return true;
}
}
var helloword = '';//
/**
* 验证日期YYYY-MM-DD是否错误,true为错误
*
* @param RQ
* @return
*/
function valid_RQcheckIsError(RQ) {
var date = RQ;
var result = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if (result == null)
return false;
var d = new Date(result[1], result[3] - 1, result[4]);
return !(d.getFullYear() == result[1] && (d.getMonth() + 1) == result[3] && d
.getDate() == result[4]);
}
/**
* 到当前几岁(去掉小数)不准
*
* @param d1
* @param d2
* @return
*/
function DateDiff(d2) {
var day = 24 * 60 * 60 * 1000;
try {
var checkDate = new Date();
var dateArr1 = "2014-08-31".split("-");
checkDate.setFullYear(dateArr1[0], dateArr1[1] - 1, dateArr1[2]);
var checkTime = checkDate.getTime();
var dateArr2 = d2.split("-");
var checkDate2 = new Date();
checkDate2.setFullYear(dateArr2[0], dateArr2[1] - 1, dateArr2[2]);
var checkTime2 = checkDate2.getTime();
var cha = (checkTime - checkTime2) / day;
return parseInt(cha / 365);
} catch (e) {
return 0;
}
}
/**
* 比较日期
*
* @param d1
* 日期一
* @param d2
* 日期二
* @return true为一大于或等于二
*/
function comparaDate(a, b) {
try {
var arr = a.split("-");
var starttime = new Date();
starttime.setFullYear(arr[0], arr[1] - 1, arr[2]);
var starttimes = starttime.getTime();
var arrs = b.split("-");
var lktime = new Date();
lktime.setFullYear(arrs[0], arrs[1] - 1, arrs[2]);
var lktimes = lktime.getTime();
if (starttimes > lktimes) {
return 1;
}
if (starttimes == lktimes) {
return 0;
}
if (starttimes < lktimes) {
return -1;
}
} catch (e) {
return null;
}
}
// 身份证验证
function IsIdnum(str) {
var City = {
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 iSum = 0;
var info = "";
helloword = str;
if (!/^\d{17}(\d|x)$/i.test(str))
return false;
str = str.replace(/x$/i, "a");
if (City[parseInt(str.substr(0, 2))] == null) {
return false;
}
sBirthday = str.substr(6, 4) + "-" + Number(str.substr(10, 2)) + "-"
+ Number(str.substr(12, 2));
var d = new Date(sBirthday.replace(/-/g, "/"))
if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d
.getDate())) {
return false;
}
for (var i = 17; i >= 0; i--)
iSum += (Math.pow(2, i) % 11) * parseInt(str.charAt(17 - i), 11)
if (iSum % 11 != 1) {
return false;
}
return City[parseInt(str.substr(0, 2))] + "," + sBirthday + ","
+ (str.substr(16, 1) % 2 ? "男" : "女")
}
/**
* 身份证
*
* @param val
* @returns {Boolean}
*/
function isShenFenZheng(val) {
var issfz15 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
var issfz18 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
if (issfz15.test(val) || issfz18.test(val)) {
return true;
} else {
return false;
}
}
/**
* 手机号
*
* @param val
* @returns {Boolean}
*/
function isPhone(val) {
var isphone = /^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/;
if (isphone.test(val)) {
return true;
} else {
return false;
}
}
/**
* email
*
* @param val
* @returns {Boolean}
*/
function isEmail(val) {
var isEmail = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if (isEmail.test(val)) {
return true;
} else {
return false;
}
}
function getBirthdatByIdNo(iIdNo) {
var tmpStr = "";
var idDate = "";
var tmpInt = 0;
var strReturn = "";
if ((iIdNo.length != 15) && (iIdNo.length != 18)) {
strReturn = "输入的身份证号位数错误";
return strReturn;
}
if (iIdNo.length == 15) {
tmpStr = iIdNo.substring(6, 12);
tmpStr = "19" + tmpStr;
tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-"
+ tmpStr.substring(6)
return tmpStr;
} else { // if(iIdNo.length==18)
tmpStr = iIdNo.substring(6, 14);
tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-"
+ tmpStr.substring(6)
return tmpStr;
}
}