再也不为正则表达式愁了,只是调用几个函数的事情
//将下面的代码写在一个js中,调用即可。
//是否为空
1 function isEmpty(str){ 2 var whitespace = " \t\n\r"; 3 var i; 4 if((str == null) || (str.length == 0)) 5 return true; 6 for(i = 0; i < str.length; i++){ 7 var c = str.charAt(i); 8 if(whitespace.indexOf(c) == -1) 9 return false; 10 } 11 return true; 12 }
1 //合法Email地址 2 function isEmail(str){ 3 var isEmail = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; 4 if(isEmail.test(str)){ 5 return true; 6 } 7 return false; 8 }
//固定电话 function isPhone(str){ var isPhone = /^0(((\d{2,3})-(\d){7,8})|(\d{2,3}(\d){7,8}))$/; if(isPhone.test(str)){ return true; } return false; }
1 //身份证号 2 function isIdCard(str){ 3 var isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; 4 var isIDCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}[A-Za-z0-9]{1}$/; 5 if(isIDCard1.test(str)||isIDCard2.test(str)){ 6 return true; 7 } 8 return false; 9 }
1 //移动电话 2 function isMobile(str){ 3 var isMobile = /^(13|15|18|14)\d{9}$/; 4 if(isMobile.test(str)){ 5 return true; 6 } 7 return false; 8 }
//是否为数字 function isNumber(str){ var isNumber = /\d/; if(isNumber.test(str)){ return true; } return false; }
//是否为六位数字 function isPostNum(str){ var isPostNum = /\d{6}/; if(isPostNum.test(str)){ return true; } return false; }
//中文名字 function isName(str){ var isName = /^([A-Za-z\u0391-\uFFE5]){2,20}$/; if(isName.test(str)){ return true; } return false; }
//两位小数 function isMoney(str){ var isMoney = /^(\d+|[1-9])\.{0,1}\d{0,2}$/; if(isMoney.test(str)){ return true; } return false; }
//合法昵称 function isStandard(str){ var isStandard = /^([\u4e00-\u9fa5A-Za-z0-9]){1,12}$/; if(isStandard.test(str)){ return true; } return false; }
//是否为日期 function isBirthday(str){ var isBirthday = /^[1-9][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/; if(isBirthday.test(str)){ return true; } return false; }
话题补充://是否为字母 function isCharacter(str){ var isCharacter = /^[a-zA-Z]+$/; if(isCharacter.test(str)){ return true; } return false; }
1 // 通过身份证号码找出性别和生日 2 function showBirthday(val,sex,birthday,error) 3 { 4 var check=checkID_ICCID(val) 5 if(check!='正确') { 6 if(error.hasChildNodes()){ 7 error.removeChild(error.firstChild); 8 } 9 error.appendChild(document.createTextNode(check)); 10 return; 11 } 12 else 13 { 14 if(error.hasChildNodes()){ 15 error.removeChild(error.firstChild); 16 } 17 } 18 var birthdayValue; 19 if(15==val.length) 20 { //15位身份证号码 21 birthdayValue = val.charAt(6)+val.charAt(7); 22 if(parseInt(birthdayValue)<10) 23 { 24 birthdayValue = '20'+birthdayValue; 25 } 26 else 27 { 28 birthdayValue = '19'+birthdayValue; 29 } 30 birthdayValue=birthdayValue+'-'+val.charAt(8)+val.charAt(9)+'-'+val.charAt(10)+val.charAt(11); 31 if(parseInt(val.charAt(14)/2)*2!=val.charAt(14)) 32 sex.value='男'; 33 else 34 sex.value='女'; 35 birthday.value=birthdayValue; 36 } 37 if(18==val.length) 38 { //18位身份证号码 39 birthdayValue=val.charAt(6)+val.charAt(7)+val.charAt(8)+val.charAt(9)+'-'+val.charAt(10)+val.charAt(11) 40 +'-'+val.charAt(12)+val.charAt(13); 41 if(parseInt(val.charAt(16)/2)*2!=val.charAt(16)){ 42 sex.value='男'; 43 } 44 else{ 45 sex.value='女'; 46 } 47 birthday.value=birthdayValue; 48 } 49 }
1 //验证身份证号格式 2 function checkID_ICCID(ID_ICCID){ 3 var Errors=new Array( 4 "正确", 5 "身份证号码位数不对!", 6 "身份证号码出生日期超出范围或含有非法字符!", 7 "身份证号码校验错误!", 8 "身份证地区非法!" 9 ); 10 var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林", 11 23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西", 12 37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南", 13 50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃", 14 63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 15 var ID_ICCID,Y,JYM; 16 var S,M; 17 var ID_ICCID_array = new Array(); 18 ID_ICCID_array = ID_ICCID.split(""); 19 //地区检验 20 if(area[parseInt(ID_ICCID.substr(0,2))]==null) return Errors[4]; 21 //身份号码位数及格式检验 22 switch(ID_ICCID.length){ 23 case 15: 24 if ( (parseInt(ID_ICCID.substr(6,2))+1900) % 4 == 0 || ((parseInt(ID_ICCID.substr(6,2))+1900) % 100 == 0 && (parseInt(ID_ICCID.substr(6,2))+1900) % 4 == 0 )){ 25 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}$/;//测试出生日期的合法性 26 } 27 else { 28 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}$/;//测试出生日期的合法性 29 } 30 if(ereg.test(ID_ICCID)) 31 return Errors[0]; 32 else 33 return Errors[2]; 34 break; 35 case 18: 36 //18位身份号码检测 37 //出生日期的合法性检查 38 //闰年月日:((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])) 39 //平年月日:((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])) 40 if ( parseInt(ID_ICCID.substr(6,4)) % 4 == 0 || (parseInt(ID_ICCID.substr(6,4)) % 100 == 0 && parseInt(ID_ICCID.substr(6,4))%4 == 0 )){ 41 ereg=/^[1-9][0-9]{5}(19|20)[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]$/;//闰年出生日期的合法性正则表达式 42 } 43 else { 44 ereg=/^[1-9][0-9]{5}(19|20)[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]$/;//平年出生日期的合法性正则表达式 45 } 46 if(ereg.test(ID_ICCID)){//测试出生日期的合法性 47 //计算校验位 48 S = (parseInt(ID_ICCID_array[0]) + parseInt(ID_ICCID_array[10])) * 7 49 50 + (parseInt(ID_ICCID_array[1]) + parseInt(ID_ICCID_array[11])) * 9 51 + (parseInt(ID_ICCID_array[2]) + parseInt(ID_ICCID_array[12])) * 10 52 + (parseInt(ID_ICCID_array[3]) + parseInt(ID_ICCID_array[13])) * 5 53 + (parseInt(ID_ICCID_array[4]) + parseInt(ID_ICCID_array[14])) * 8 54 + (parseInt(ID_ICCID_array[5]) + parseInt(ID_ICCID_array[15])) * 4 55 + (parseInt(ID_ICCID_array[6]) + parseInt(ID_ICCID_array[16])) * 2 56 + parseInt(ID_ICCID_array[7]) * 1 57 + parseInt(ID_ICCID_array[8]) * 6 58 + parseInt(ID_ICCID_array[9]) * 3 ; 59 Y = S % 11; 60 M = "F"; 61 JYM = "10X98765432"; 62 M = JYM.substr(Y,1);//判断校验位 63 64 if(M == ID_ICCID_array[17].toUpperCase()) 65 return Errors[0]; //检测ID的校验位 66 else 67 { 68 var a=PersonManage_FamilyDetailInfo.CheckCode(ID_ICCID).value; 69 if(a==-1) 70 return Errors[0]; //检测ID的校验位 71 else 72 return Errors[3]; 73 } 74 } 75 else 76 return Errors[2]; 77 break; 78 default: 79 return Errors[1]; 80 break; 81 } 82 }