📄 validateutil.js
字号:
* 下面是判断null值或空值、是否有空格;如果有空格直接替换,不出现警告信息
* @param {objID} 对象的ID
* @param message 对象的名称
* @modify by @tombo
*/
function replaceBlankValidateAll(objID,message) {
if(checkIsNull(objID)) {
alert("【"+message+"】的值为空,请您输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}else{
document.getElementById(objID).value = replaceSpaceAll(objID);
return true;
}
}
/*===========================【空值和空格的验证】结束==============================*/
/*=============================【日期的验证】开始==============================*/
/**
* 功能:判断是否为日期(格式:2007-04-15)
* 使用:dateCheck(objID,message)
* 返回:bool
* @param objID 对象的id
* @param message 对象的名称
* @modify by @tombo
*/
function dateCheck(objID,message){
if(checkIsNull(objID)) {
alert("【"+message+"】为空值,请您输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
var datePat = /^(\d{2}|\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;
var dateStr = document.getElementById(objID).value;
var matchArray = dateStr.match(datePat);
if(matchArray==null){
alert("您输入的【"+message+"】格式不正确,例如: 【2007-03-12】!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
year=matchArray[1];
month=matchArray[3];
day=matchArray[5];
if (year.length!=4 || month.length!=2 || day.length!=2){
alert("您输入的【"+message+"】格式不正确,例如: 【2007-03-12】!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
if (month < 1 || month > 12){
alert("您输入的【"+message+"】格式不正确,【"+message+"】的月数不正确!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
if (day < 1 || day > 31){
alert("您输入的【"+message+"】格式不正确,【"+message+"】的天数不正确!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31){
alert("您输入的【"+message+"】格式不正确,【"+message+"】的天数不正确!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
if (month==2){
var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));
if (day>29 || ((day==29) && (!isleap))){
alert("您输入的【"+message+"】格式不正确,【"+message+"】的天数不正确!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
}
return true;
}
/*=============================【日期的验证】结束==============================*/
/*=============================【电子邮件地址的验证】开始==============================*/
/**
* 功能:邮箱地址检查
* 使用:mailCheck(objID,message,len)
* 返回:bool
* @param objID 对象的id
* @param message objID所对应的名字,你可以自己形象的取名字
* @param len objID的值最大长度
* @modify @tombo
*/
function mailCheck(objID,message,len){
var objValue = replaceSpaceAll(objID);//将email中的所有空格替换成为空字符串
if(objValue!= "" && objValue.length>1){
var ok1=objValue.indexOf("@");
var ok2=objValue.indexOf(".");
if(!((ok1!=-1)&&(ok2!=-1))){
alert("您输入的【"+message+"】格式不正确,【"+message+"】的正确写法例如【tombo@sohu.com】!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
var allowstrlist = "&#%<>";
var endvalue = true;
for (i=0;i<objValue.length;i++) {
if(allowstrlist.indexOf(objValue.substr(i,1))!=-1) {
endvalue=false;
break;
}
}
if(endvalue==false){
alert("您输入的【"+message+"】格式不正确,【"+message+"】的正确写法例如【tombo@sohu.com】!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
if(objValue.length > len) {
alert("您输入的【"+message+"】过长,不能超过"+len+"个字符!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
//邮件地址正确
document.getElementById(objID).value = objValue;
return true;
}else{
//请输入电子信箱地址
alert("【"+message+"】的值为空,请您输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
}
/*=============================【电子邮件地址的验证】结束==============================*/
/*=============================【身份证号码的验证】开始==============================*/
/**
* 功能:验证身份证 目前只对大陆、香港和台湾的身份证做验证
* 使用:checkIdentityCard(objID,message)
* @param objID 对象的id
* @param message 对象的名称
* @return bool;
* @modify by @tombo
*/
function checkIdentityCard(objID,message) {
if(checkIsNull(objID)) {
alert("【"+message+"】为空值,请您输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
var objValue = document.getElementById(objID).value;
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;
idcard = objValue;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//身份号码位数及格式检验开始
switch(idcard.length) {
case 15:
//大陆15位身份证号码地区检验
if(area[parseInt(idcard.substr(0,2))]==null) {
alert("【"+message+"】的地址码不是国家规定的,请您检查后再输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
//大陆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 )){
//大陆15位身份证号码 闰年出生日期的合法性正则表达式
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 {
//大陆15位身份证号码 平年出生日期的合法性正则表达式
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}$/;
}
//测试大陆15位身份证号码出生日期的合法性
if(ereg.test(idcard)) {
return true;
}
else {
alert("【身份证号码】中的出生日期超出范围或者含有非法字符,请您检查后再输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
break;
case 18:
//大陆18位身份证号码地区检验
if(area[parseInt(idcard.substr(0,2))]==null) {
alert("【"+message+"】的地址码不是国家规定的,请您检查后再输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
//大陆18位身份证号码检测
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
//大陆18位身份证号码 闰年出生日期的合法性正则表达式
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 {
//大陆18位身份证号码 平年出生日期的合法性正则表达式
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]$/;
}
//测试大陆18位身份证号码出生日期的合法性
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);//判断18位身份证号码的校验位
if(M == idcard_array[17])
return true;
else {
alert("【身份证号码】中的第18位校验码不正确,请您检查后再输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
}
else {
alert("【身份证号码】中的出生日期超出范围或者含有非法字符,请您检查后再输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
break;
case 10:
return true;
break;
default:
alert("【身份证号码】的位数不正确,【大陆身份证】为15位或18位,【台湾身份证】为10位,【香港身份证】包括两个间括号也为10位,请您检查后再输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
break;
}
}
/**
* 功能:结合出生日期验证身份证 目前只对大陆、香港和台湾的身份证做验证
* 使用:checkIdentityCard(objID,objID2,message)
* @param objID 身份证号码
* @param objID2 出生日期 格式为【1980-08-15】
* @param message 对象的名称
* @return bool;
* @modify by @tombo
*/
function checkIdentityCard(objID,objID2,message) {
if(checkIsNull(objID)) {
alert("【"+message+"】为空值,请您输入!");
document.getElementById(objID).focus();
document.getElementById(objID).select();
return false;
}
var objValue = document.getElementById(objID).value;
var objValue2 = document.getElementById(objID2).value;
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;
idcard = objValue;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//身份号码位数及格式检验开始
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -