只是小人物

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

再也不为正则表达式愁了,只是调用几个函数的事情
//将下面的代码写在一个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 }

 

posted on 2012-04-09 22:23  只是小人物  阅读(802)  评论(2编辑  收藏  举报