验证身份证号的正则表达式 小弟不会写
谁帮偶写一下下 谢谢啦!

解决方案 »

  1.   


    身份证正则表达式(18位) ==>/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; 
    身份证正则表达式(15位)==> /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])(\d{3}|(\d{2}X))$/; 
      

  2.   

    /* 功能:判断字段值是否为合法的身份证号
     * 参数:field 所要进行判断的字段
     *       fieldName 字段名
     * 返回:true  字段值为整数
     *       false 字段值不为整数
     */
    function isLegalIDCard( s )
    {
    return true;
    var tmpNum=""+s;
    if ( tmpNum.length == 15  )
    {
           for (var i=0;i<tmpNum.length;i++)
           {
             var tmp=tmpNum.charAt(i);
             if (tmp<"0" || tmp>"9")
             {
             return false;
             }
           }
        }
        else if ( tmpNum.length == 18  )
        {
            for (var i=0;i<tmpNum.length;i++)
           {
             var tmp=tmpNum.charAt(i);
            if ( i == 17 )
            {
             if ( ( tmp<"0" || tmp>"9" )&&  tmp != "x" && tmp != "X"  )
             {
             return false;
             }
             }
             else
             {
             if (  tmp<"0" || tmp>"9" )
             {
             return false;
             }
             }
    }
        }
        else
        {
           return false;
    }
        return true;
    }
      

  3.   

    回复人:yanransoft() ( 二级(初级)) 信誉:100  2007-5-30 21:11:56  得分:5?  /* 功能:判断字段值是否为合法的身份证号
    * 参数:field 所要进行判断的字段
    * fieldName 字段名
    * 返回:true 字段值为整数
    * false 字段值不为整数
    */
    =================================
    上面的那段程序并不能判断身份证的合法性啊,知道吗,身份证号码的最后一位是校验位,是通过加权算法算出来的,用于防止身份证号码的错误的,那段程序里根本就没有涉及到。