惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tenable Blog
Project Zero
Project Zero
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cyberwarzone
Cyberwarzone
PCI Perspectives
PCI Perspectives
G
GRAHAM CLULEY
H
Hacker News: Front Page
Cloudbric
Cloudbric
Latest news
Latest news
N
News and Events Feed by Topic
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
SecWiki News
SecWiki News
Security Latest
Security Latest
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Security Archives - TechRepublic
Security Archives - TechRepublic
V2EX - 技术
V2EX - 技术
B
Blog RSS Feed
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
Last Week in AI
Last Week in AI
IT之家
IT之家
Jina AI
Jina AI
Y
Y Combinator Blog
博客园 - 聂微东
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
P
Privacy International News Feed
B
Blog
S
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
Help Net Security
Help Net Security
D
DataBreaches.Net
博客园_首页
G
Google Developers Blog
I
InfoQ
量子位
大猫的无限游戏
大猫的无限游戏
S
Security @ Cisco Blogs

博客园 - huazi4995

prototype.js开发笔记 JS应用 java环境配置 关于梅花雪的js树 - huazi4995 - 博客园 MagicAjax的使用 - huazi4995 - 博客园 div+css制作的选项卡 - huazi4995 - 博客园 关于word文档的数据库存取 SQL查询语句精华使用简要 - huazi4995 - 博客园 c#常用函数和方法集汇总 动态创建层 C#操作Word文档(Office 2007) datagrid控件使用技巧大集合 网站设计常用技巧 jsp编程技巧 ArrayList的使用方法(转载) 将datagrid里的资料导入到excel js中的小技巧 ajax+xml数据岛,增加编辑与删除按钮 利用webservice实现省、市的无刷新
身份证号码验证-支持新的带x身份证
huazi4995 · 2007-03-17 · via 博客园 - huazi4995

//--身份证号码验证-支持新的带x身份证
function isIdCardNo(num) 
{
    
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    
var error;
    
var varArray = new Array();
    
var intValue;
    
var lngProduct = 0;
    
var intCheckDigit;
    
var intStrLen = num.length;
    
var idNumber = num;    
    
// initialize
    if ((intStrLen != 15&& (intStrLen != 18)) {
        
//error = "输入身份证号码长度不对!";
        //alert(error);
        //frmAddUser.txtIDCard.focus();
        return false;
    }    
    
// check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] 
= idNumber.charAt(i);
        
if ((varArray[i] < '0' || varArray[i] > '9'&& (i != 17)) {
            
//error = "错误的身份证号码!.";
            //alert(error);
            //frmAddUser.txtIDCard.focus();
            return false;
        } 
else if (i < 17) {
            varArray[i] 
= varArray[i]*factorArr[i];
        }
    }
    
if (intStrLen == 18) {
        
//check date
        var date8 = idNumber.substring(6,14);
        
if (checkDate(date8) == false) {
            
//error = "身份证中日期信息不正确!.";
            //alert(error);
            return false;
        }        
        
// calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct 
= lngProduct + varArray[i];
        }        
        
// calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        
switch (intCheckDigit) {
            
case 10:
                intCheckDigit 
= 'X';
                
break;
            
case 11:
                intCheckDigit 
= 0;
                
break;
            
case 12:
                intCheckDigit 
= 1;
                
break;
        }        
        
// check last digit
        if (varArray[17].toUpperCase() != intCheckDigit) {
            
//error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";
            //alert(error);
            return false;
        }
    } 
    
else{        //length is 15
        //check date
        var date6 = idNumber.substring(6,12);
        
if (checkDate(date6) == false) {
            
//alert("身份证日期信息有误!.");
            return false;
        }
    }
    
//alert ("Correct.");
    return true;
}

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1529727