当前位置: 代码迷 >> Web前端 >> 信箱\身份证\检验
  详细解决方案

信箱\身份证\检验

热度:451   发布时间:2012-09-06 10:37:01.0
邮箱\身份证\检验
    /**
     * 检验电子邮箱
     * s:待检验的字符串
     * true:邮箱合法,false邮箱不合法
     */
    isEMail:function(s)
    {
        var pattern = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        return pattern.exec(s);

    },

    /**
     * 检验身份证
     * s:待检验的字符串
     * true:身份证合法,false身份证不合法
     */
    isIdCard:function(idCard)
    {
		var id=idCard;
	    var id_length=id.length;

	    if (id_length==18){

	        if (id.indexOf("X") > 0 && id.indexOf("X")!=17 || id.indexOf("x")>0 && id.indexOf("x")!=17){
	           // alert("身份证中\"X\"输入位置不正确!");
	            return false;
	        }

	        yyyy=id.substring(6,10);
	        if (yyyy>2200 || yyyy<1900){
	           // alert("输入身份证号,年度非法!");
	            return false;
	        }

	        mm=id.substring(10,12);
	        if (mm>12 || mm<=0){
	           /// alert("输入身份证号,月份非法!");
	            return false;
	        }

	        dd=id.substring(12,14);
	        if (dd>31 || dd<=0){
	           // alert("输入身份证号,日期非法!");
	            return false;
	        }

	        if (id.charAt(17)=="x" || id.charAt(17)=="X")
	        {
	            if ("x"!=this.GetVerifyBit(id) && "X"!=this.GetVerifyBit(id)){
	                //alert("身份证校验错误,请检查最后一位!");
	                return false;
	            }

	        }else{
	            if (id.charAt(17)!=this.GetVerifyBit(id)){
	               // alert("身份证校验错误,请检查最后一位!");
	                return false;
	            }
	        }
	        birthday=id.substring(6,10) + "-" + id.substring(10,12) + "-" + id.substring(12,14);
	        if ("13579".indexOf(id.substring(16,17)) > -1){
	            sex="1";
	        }else{
	            sex="2";
	        }
			return true;
	    }else{
			return false;
		}



    },

	//15位转18位中,计算校验位即最后一位
	GetVerifyBit:function (id){
	    var result;
	    var nNum=eval(id.charAt(0)*7+id.charAt(1)*9+id.charAt(2)*10+id.charAt(3)*5+id.charAt(4)*8+id.charAt(5)*4+id.charAt(6)*2+id.charAt(7)*1+id.charAt(8)*6+id.charAt(9)*3+id.charAt(10)*7+id.charAt(11)*9+id.charAt(12)*10+id.charAt(13)*5+id.charAt(14)*8+id.charAt(15)*4+id.charAt(16)*2);
	    nNum=nNum%11;
	    switch (nNum) {
	       case 0 :
	          result="1";
	          break;
	       case 1 :
	          result="0";
	          break;
	       case 2 :
	          result="X";
	          break;
	       case 3 :
	          result="9";
	          break;
	       case 4 :
	          result="8";
	          break;
	       case 5 :
	          result="7";
	          break;
	       case 6 :
	          result="6";
	          break;
	       case 7 :
	          result="5";
	          break;
	       case 8 :
	          result="4";
	          break;
	       case 9 :
	          result="3";
	          break;
	       case 10 :
	          result="2";
	          break;
	    }
	    //document.write(result);
	    return result;
	},



    /**
     * 检验姓名 姓名是2-15字的汉字
     * s:待检验的字符串
     * true:姓名合法,false姓名不合法
     */
    isCardName:function(s)
    {
        var patrn = /^\s*[\u4e00-\u9fa5]{2,15}\s*$/;
        return patrn.exec(s);

    },

    /**
     * 检验手机号
     * s:待检验的字符串
     * true:手机号合法,false手机号不合法
     */
    isMobile:function(s)
    {
        //var patrn = /^\s*(1\d{3,5,8})\s*$/;
    	var patrn =/1[3,4,5,8]\d{9}/;
        return patrn.exec(s);

    },
  相关解决方案