网上也有一些JS的身份证号码验证函数, 不过有些没考虑到一个特殊情况: 最后一位是数字或者X. 下面给出我的一种写法供参考:

<script>
//自定义的身份证验证函数function checkID(f) {
        // 身份证验证 18 位数字// 1. 18位if(f.ID.value.length != 18) {
        alert("请输入中国公民的18位身份证号码, 您当前输入了" + f.ID.value.length + "位号码" );
        f.ID.focus();
        returnfalse;
    }
    // 2. 确保前17位每一位都是数字for(i = 0; i < f.ID.value.length - 1; i++) {
        // 如何判断一个字母是数字if(isNaN( parseInt( f.ID.value.charAt(i) ) )) {
            alert("您输入的身份证号码前17位包含有字母, 不合要求" );
            f.ID.focus();
            returnfalse;
        }
    }

    // 3. 确保最后一位是数字或者Xvar lastIDNum = f.ID.value.charAt(17);
    if( isNaN(parseInt( f.ID.value.charAt(i) )) &&  lastIDNum.toLowerCase() != 'x') {
        alert("您输入的身份证号码最后一位不是数字也不是x, 不合要求" );
        f.ID.focus();
        returnfalse;
    }

    returntrue;
}
</script>

转载请注明:WebLogic Android 博客 » JavaScript身份证号码验证函数