1.if((document.formName.inputName.value.length==10||document.formName.inputName.value.length==13)&&(!isNaN(document.formName.inputName.value)))alert('身份证号码正确')
else alert('身份证号码不正确')2。
if(document.formName.inputName.value.length<=2&&isNaN(document.formName.inputName.value))alert('输入的非数字,长度不超过2')
if(document.formName.inputName.value.length<=2&&!isNaN(document.formName.inputName.value))alert('输入的是数字,长度不超过2')

解决方案 »

  1.   

    1、身份证号码一般 10位或者12位,全为数字
    2、isNaN就是判断非数字的
      

  2.   

    <input onblur="alert(/^\d{18}$/.test(value))">身份证暂时还没有很精确的,找找先
    <input onpropertychange="if(/\D/g.test(value))value=value.replace(/\D/g,'')" maxlength=2>
      

  3.   

    http://expert.csdn.net/Expert/topic/1760/1760640.xml秋水的验证身份证号代码<script>
    var aCity={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:"国外"}
      
    function cidInfo(sId){
    var iSum=0
    var info=""
    if(!/^\d{17}(\d|x)$/i.test(sId))return false;
    sId=sId.replace(/x$/i,"a");
    if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";
    sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
    var d=new Date(sBirthday.replace(/-/g,"/"))
    if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
    for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
    if(iSum%11!=1)return "Error:非法证号";
    return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
    }document.write(cidInfo("380524198002300016"),"<br/>");
    document.write(cidInfo("340524198002300019"),"<br/>")
    document.write(cidInfo("340524197711111111"),"<br/>")
    document.write(cidInfo("34052419800101001x"),"<br/>");
    </script>
      

  4.   

    zhjzh_zjz
    你的那个数字验证不能返回阿?
    而且没有效果。。
      

  5.   

    <script>
    function openWin(v)
    {
    str=/^[0-9]{15,18}$/;   //身份证//不好的地方是,16位、17位的数字也允许了,
    if (str.test(v))
        alert('格式正确');
    else
       alert('格式不正确');
    }</script>
    <input id=txt type=text>
    <button onclick='openWin(document.all.txt.value)'>测试</button><script>
    function openWin(v)
    {
    str=/^[0-9]{0,2}$/; //是否为数字//不超过两位数字
    if (str.test(v))
        alert('格式正确');
    else
       alert('格式不正确');
    }
    </script>
    <input id=txt type=text>
    <button onclick='openWin(document.all.txt.value)'>测试</button>
      

  6.   

    请输入身份证:<input type="text" id="ipt" onchange="if(!(this.value.length==10||this.value.length==13)||(isNaN(this.value))alert('输入不正确')">
    请输入两位数:<input type="text" id="num" onchange="(this.value.length<=2&&isNaN(this.value))alert("输入了小于两位的非数字")">
      

  7.   

    写了没多久,大家给测试一下.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;
    }

    }
    该函数保存了check.js文件.以下为测试文件:
    <html>
    <head>
    <title>CheckIDcard</title>
    </head>
    <SCRIPT LANGUAGE="JavaScript" src="check.js">
    </SCRIPT>
    <SCRIPT LANGUAGE="JavaScript">
    function check(idcard){
    alert(checkIdcard(idcard));
    return false;}
    </SCRIPT>
    <body>
    <form method=post onsubmit="return check(id.value)">
    <input type="text" name="id">
    <input type="submit" value="check">
    </form>
    </body>
    </html>