//数字检测
function checkNumber(str) {
if (str.Trim() == "") {
return true;
}
var patrn = /^[0-9]+$/;
return patrn.test(str.Trim());
}
//检测价格
function checkPrice(str) {
if (str.Trim() == "") {
return true;
}
var patrn = /^\d{1,5}(\.(\d{1,2}))?$/;
return patrn.test(str.Trim());
}
//身份证验证严格校验
function checkIdcard(idcard) {
var Errors = new Array(
"身份证验证通过!",
"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"
);
var area = { 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 idcard, Y, JYM;
var S, M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
//身份号码位数及格式检验
switch (idcard.length) {
case 15:
if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; //测试出生日期的合法性
} else {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; //测试出生日期的合法性
}
if (ereg.test(idcard)) return Errors[0];
else return Errors[2];
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {
ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/; //闰年出生日期的合法性正则表达式
} else {
ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/; //平年出生日期的合法性正则表达式
}
if (ereg.test(idcard)) {//测试出生日期的合法性
//计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y, 1); //判断校验位
if (M == idcard_array[17]) return Errors[0]; //检测ID的校验位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
//联系电话(手机/电话皆可)验证 1 - 座机 、 0 - 手机 、 其他 - 不区分
function checkPhone(str, isPhone) {
if (str.Trim() == "") {
return true;
}
var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
var tel = /^(\d{3,4}-?)?\d{7,9}(-\d{3,6})?$/;
if (str.startWith("1")) {
return mobile.test(str.Trim());
}
else if (isPhone == 1) {
return (tel.test(str.Trim()));
}
else if (isPhone == 0) {
return mobile.test(str.Trim());
}
return (tel.test(str.Trim()) || mobile.test(str.Trim()));
}
//邮政编码验证
function checkZipCode(str) {
if (str.Trim() == "") {
return true;
}
var tel = /^[0-9]{6}$/;
return tel.test(str.Trim());
}
//邮箱验证
function checkEmail(str) {
if (str.Trim() == "") {
return true;
}
var reg = /^\w+((-\w+)|(\.\w+))*\@{1}\w+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig;
return reg.test(str.Trim());
}
//输入判断比较
function chkValueIn(chkObjId, chkValue) {
if ($("#" + chkObjId).val().Trim() == chkValue ) {
$("#" + chkObjId).val("");
}
}
//输出判断比较
function chkValueOut(chkObjId, chkValue) {
if ($("#" + chkObjId).val().Trim() == "") {
$("#" + chkObjId).val(chkValue);
}
}
//用于最大字数限制输入框
//contentId 内容输入容器Id
//maxId 剩余字数显示容器Id
//maxlength 最大字数值
function checkChar(contentId, maxId, maxlength) {
var value = $("#" + contentId).val();
var length = 0;
for (var i = 0; i < value.length; i++) {
var ch = value.charAt(i);
if (isNormalChar(ch))
length += 1;
else
length += 2;
}
if (length > maxlength) {
var currentV = "";
length = 0;
for (var i = 0; i < value.length; i++) {
length++;
if (value.charCodeAt(i) > 127) {
length++;
}
if (length <= maxlength) {
currentV = $("#" + contentId).val().substring(0, i);
}
else {
break;
}
}
$("#" + contentId).val(currentV);
$("#" + maxId).html("0");
}
else {
var residual = parseInt((maxlength - length) / 2);
$("#" + maxId).html(residual);
}
}
function isNormalChar(ch) {
if (ch.length > 1) {
return false;
}
if (ch == "") {
return true;
}
var pattern = /^([\\uFF66-\\uFF9F]|[\\u0000-\\u00FF])*$/gi;
if (pattern.test(ch)) {
return true;
} else {
return false;
}
}