身份证号码验证-支持新的带x身份证
生活随笔
收集整理的這篇文章主要介紹了
身份证号码验证-支持新的带x身份证
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//--身份證號(hào)碼驗(yàn)證-支持新的帶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?=?"輸入身份證號(hào)碼長(zhǎng)度不對(duì)!";
????????//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?=?"錯(cuò)誤的身份證號(hào)碼!.";
????????????//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?=?"身份證效驗(yàn)位錯(cuò)誤!...正確為:?"?+?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;
} ?
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?=?"輸入身份證號(hào)碼長(zhǎng)度不對(duì)!";
????????//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?=?"錯(cuò)誤的身份證號(hào)碼!.";
????????????//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?=?"身份證效驗(yàn)位錯(cuò)誤!...正確為:?"?+?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;
} ?
總結(jié)
以上是生活随笔為你收集整理的身份证号码验证-支持新的带x身份证的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用FileUpload控件上传图片并自
- 下一篇: VSS的每日自动备份