js验证身份证营业执照组织机构代码等
//身份證驗(yàn)證中頁面上要有一個(gè)id=ipmessage的標(biāo)簽用來寫提示信息
//機(jī)構(gòu)代碼驗(yàn)證中頁面上要有一個(gè)id=agency_code的標(biāo)簽來寫提示信息,并且要在CSS里寫一個(gè)check的CLASS樣式用來改變文本狀態(tài)
//營業(yè)執(zhí)照驗(yàn)證中頁面上要有一個(gè)id=business_license的標(biāo)簽來寫提示信息,并且要在CSS里寫一個(gè)check的CLASS樣式用來改變文本狀態(tài)
//頁面樣式,例如:
<style>
.check{
? ? border:1px solid #826765;
? ? background-color:#f8e3e2;
? ? color:#5c0733;
? ? font-weight:bold;
}
</style>
<div class="gyydXm"><span class="gddyName">身 份 證 號(hào) 碼</span><span class="gddyInput">
? ? <input type="text" name="identity_card" id="identity_card" value="" class="gyydText" />
? ? </span><span class="gddyTs">*</span><span id="ipmessage" class="gddyTstext">必填</span></div>
<div class="gyydXm"><span class="gddyName">機(jī) 構(gòu) 代 碼</span><span class="gddyInput">
? ? <input type="text" name="agency_code" id="agency_code" value="" class="gyydText" />
? ? </span><span class="gddyTs">*</span><span class="gddyTstext">必填</span></div>
<div class="gyydXm"><span class="gddyName">營 業(yè) 執(zhí) 照 號(hào)</span><span class="gddyInput">
? ? <input type="text" name="business_license" id="business_license" value="" class="gyydText" />
? ? </span><span class="gddyTs">*</span><span class="gddyTstext">必填</span></div>
<script>
//身份證
function checkDate( idcard ){var socialNo = idcard;
if(socialNo == "") ?
? ? { ?
? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? //alert("輸入身份證號(hào)碼不能為空!"); ?
? ? ? return (false); ?
? ? } ?
? ? if (socialNo.length != 15 && socialNo.length != 18) ?
? ? { ?
? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ?//alert("輸入身份證號(hào)碼格式不正確!"); ?
? ? ? return (false); ?
? ? } ?
? ? ? ??
? ?var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"內(nèi)蒙古",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:"臺(tái)灣",81:"香港",82:"澳門",91:"國外"}; ??
? ? ? ?
? ? ?if(area[parseInt(socialNo.substr(0,2))]==null) { ?
? ? ? $('#ipmessage').html('身份證號(hào)碼不正確(地區(qū)非法),必須是15位到18位的身份證號(hào)');
? ? ?//alert("身份證號(hào)碼不正確(地區(qū)非法)!"); ?
? ? ? ? ? return (false); ?
? ? ?} ??
? ? ? ? ? ??
? ? if (socialNo.length == 15) ?
? ? { ?
? ? ? ?pattern= /^\d{15}$/; ?
? ? ? ?if (pattern.exec(socialNo)==null){ ?
? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ?//alert("15位身份證號(hào)碼必須為數(shù)字!"); ?
? ? ? ? ? return (false); ?
? ? ? } ?
? ? ? var birth = parseInt("19" + socialNo.substr(6,2)); ?
? ? ? var month = socialNo.substr(8,2); ?
? ? ? var day = parseInt(socialNo.substr(10,2)); ?
? ? ? switch(month) { ?
? ? ? ? ? case '01': ?
? ? ? ? ? case '03': ?
? ? ? ? ? case '05': ?
? ? ? ? ? case '07': ?
? ? ? ? ? case '08': ?
? ? ? ? ? case '10': ?
? ? ? ? ? case '12': ?
? ? ? ? ? ? ? if(day>31) { ?
? ? ? ? ? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ? ? ? ? ?//alert('輸入身份證號(hào)碼不格式正確!'); ?
? ? ? ? ? ? ? ? ? return false; ?
? ? ? ? ? ? ? } ?
? ? ? ? ? ? ? break; ?
? ? ? ? ? case '04': ?
? ? ? ? ? case '06': ?
? ? ? ? ? case '09': ?
? ? ? ? ? case '11': ?
? ? ? ? ? ? ? if(day>30) { ?
? ? ? ? ? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ? ? ? ? ?//alert('輸入身份證號(hào)碼不格式正確!'); ?
? ? ? ? ? ? ? ? ? return false; ?
? ? ? ? ? ? ? } ?
? ? ? ? ? ? ? break; ?
? ? ? ? ? case '02': ?
? ? ? ? ? ? ? if((birth % 4 == 0 && birth % 100 != 0) || birth % 400 == 0) { ?
? ? ? ? ? ? ? ? ? if(day>29) { ?
? ? ? ? ? ? ? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ? ? ? ? ? ? ?//alert('輸入身份證號(hào)碼不格式正確!'); ?
? ? ? ? ? ? ? ? ? ? ? return false; ?
? ? ? ? ? ? ? ? ? } ?
? ? ? ? ? ? ? } else { ?
? ? ? ? ? ? ? ? ? if(day>28) { ?
? ? ? ? ? ? ? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ? ? ? ? ? ? ?//alert('輸入身份證號(hào)碼不格式正確!'); ?
? ? ? ? ? ? ? ? ? ? ? return false; ?
? ? ? ? ? ? ? ? ? } ?
? ? ? ? ? ? ? } ?
? ? ? ? ? ? ? break; ?
? ? ? ? ? default: ?
? ? ? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ? ? ?//alert('輸入身份證號(hào)碼不格式正確!'); ?
? ? ? ? ? ? ? return false; ?
? ? ? } ?
? ? ? var nowYear = new Date().getYear(); ?
? ? ? if(nowYear - parseInt(birth)<15 || nowYear - parseInt(birth)>100) { ?
? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ?//alert('輸入身份證號(hào)碼不格式正確!'); ?
? ? ? ? ? return false; ?
? ? ? } ?
? ? ? $('#ipmessage').html('通過!');
? ? ? return (true); ?
? ? } ?
? ? ??
? ? var Wi = new Array( ?
? ? ? ? ? ? ? 7,9,10,5,8,4,2,1,6, ?
? ? ? ? ? ? ? 3,7,9,10,5,8,4,2,1 ?
? ? ? ? ? ? ? ); ?
? ? var ? lSum ? ? ? ?= 0; ?
? ? var ? nNum ? ? ? ?= 0; ?
? ? var ? nCheckSum ? = 0; ?
? ? ??
? ? ? for (i = 0; i < 17; ++i) ?
? ? ? { ?
? ? ? ? ? ??
? ? ? ? ? if ( socialNo.charAt(i) < '0' || socialNo.charAt(i) > '9' ) ?
? ? ? ? ? { ?
? ? ? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ? ? ?//alert("輸入身份證號(hào)碼格式不正確!"); ?
? ? ? ? ? ? ? return (false); ?
? ? ? ? ? } ?
? ? ? ? ? else ?
? ? ? ? ? { ?
? ? ? ? ? ? ? nNum = socialNo.charAt(i) - '0'; ?
? ? ? ? ? } ?
? ? ? ? ? ?lSum += nNum * Wi[i]; ?
? ? ? } ?
? ? ??
? ? ? if( socialNo.charAt(17) == 'X' || socialNo.charAt(17) == 'x') ?
? ? ? { ?
? ? ? ? ? lSum += 10*Wi[17]; ?
? ? ? } ?
? ? ? else if ( socialNo.charAt(17) < '0' || socialNo.charAt(17) > '9' ) ?
? ? ? { ?
? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ?//alert("輸入身份證號(hào)碼格式不正確!"); ?
? ? ? ? ? return (false); ?
? ? ? } ?
? ? ? else ?
? ? ? { ?
? ? ? ? ? lSum += ( socialNo.charAt(17) - '0' ) * Wi[17]; ?
? ? ? } ?
? ? ? ??
? ? ? ??
? ? ? if ( (lSum % 11) == 1 ) ?
? ? ? { ?
? ? ?$('#ipmessage').html('通過!');
? ? ? ? ? return true; ?
? ? ? } ?
? ? ? else ?
? ? ? { ?
? ? ? ? ? $('#ipmessage').html('輸入身份證號(hào)碼格式不正確,必須是15位到18位的身份證號(hào)');
? ? ? ? ?//alert("輸入身份證號(hào)碼格式不正確!"); ?
? ? ? ? ? return (false); ?
? ? ? } ?
? }
? /**
*驗(yàn)證營業(yè)執(zhí)照是否合法:營業(yè)執(zhí)照長度須為15位數(shù)字,前14位為順序碼,
*最后一位為根據(jù)GB/T 17710 1999(ISO 7064:1993)的混合系統(tǒng)校驗(yàn)位生成算法
*計(jì)算得出。此方法即是根據(jù)此算法來驗(yàn)證最后一位校驗(yàn)位是否政正確。如果
*最后一位校驗(yàn)位不正確,則認(rèn)為此營業(yè)執(zhí)照號(hào)不正確(不符合編碼規(guī)則)。
*以下說明來自于網(wǎng)絡(luò):
*我國現(xiàn)行的營業(yè)執(zhí)照上的注冊(cè)號(hào)都是15位的,不存在13位的,從07年開始國
*家進(jìn)行了全面的注冊(cè)號(hào)升級(jí)就全部都是15位的了,如果你看見的是13位的注
*冊(cè)號(hào)那肯定是假的。
*15位數(shù)字的含義,代碼結(jié)構(gòu)工商注冊(cè)號(hào)由14位數(shù)字本體碼和1位數(shù)字校驗(yàn)碼
*組成,其中本體碼從左至右依次為:6位首次登記機(jī)關(guān)碼、8位順序碼。
?* ? 一、前六位代表的是工商行政管理機(jī)關(guān)的代碼,國家工商行政管理總局用
? ? ? ? * ? ? ? ? ? “100000”表示,省級(jí)、地市級(jí)、區(qū)縣級(jí)登記機(jī)關(guān)代碼分別使用6位行
? ? ? ? * ? ? ? ? ? ? 政區(qū)劃代碼表示。設(shè)立在經(jīng)濟(jì)技術(shù)開發(fā)區(qū)、高新技術(shù)開發(fā)區(qū)和保稅區(qū)
? ? ? ? * ? ? ? ? ? ? 的工商行政管理機(jī)關(guān)(縣級(jí)或縣級(jí)以上)或者各類專業(yè)分局應(yīng)由批準(zhǔn)
? ? ? ? * ? ? ? ? ? ? 設(shè)立的上級(jí)機(jī)關(guān)統(tǒng)一賦予工商行政管理機(jī)關(guān)代碼,并報(bào)國家工商行政
? ? ? ? * ? ? ? ? ? ? 管理總局信息化管理部門備案。
?* ? 二、順序碼是7-14位,順序碼指工商行政管理機(jī)關(guān)在其管轄范圍內(nèi)按照先
? ? ? ? * ? ? ? ? ? ? 后次序?yàn)樯暾?qǐng)登記注冊(cè)的市場主體所分配的順序號(hào)。為了便于管理和
? ? ? ? * ? ? ? ? ? ? ?賦碼,8位順序碼中的第1位(自左至右)采用以下分配規(guī)則:
?* ? ? ? ? ?1)內(nèi)資各類企業(yè)使用“0”、“1”、“2”、“3”;
?* ? ? ? ? ?2)外資企業(yè)使用“4”、“5”;
?* ? ? ? ? ?3)個(gè)體工商戶使用“6”、“7”、“8”、“9”。
?* ? 順序碼是系統(tǒng)根據(jù)企業(yè)性質(zhì)情況自動(dòng)生成的。
* ? 順序碼是系統(tǒng)根據(jù)企業(yè)性質(zhì)情況自動(dòng)生成的。
?*三、校驗(yàn)碼是最后一位,校驗(yàn)碼用于檢驗(yàn)本體碼的正確性
*/
? ? function isValidBusCode(busCode){
? ? ? ? //return true;
? ? ? ? var ret=false;
? ? ? ? if(busCode.length==15){
? ? ? ? ? ? var sum=0;
? ? ? ? ? ? var s=[];
? ? ? ? ? ? var p=[];
? ? ? ? ? ? var a=[];
? ? ? ? ? ? var m=10;
? ? ? ? ? ? p[0]=m;
? ? ? ? ? ? for(var i=0;i<busCode.length;i++){
? ? ? ? ? ? ? ?a[i]=parseInt(busCode.substring(i,i+1),m);
? ? ? ? ? ? ? ?s[i]=(p[i]%(m+1))+a[i];
? ? ? ? ? ? ? ?if(0==s[i]%m){
? ? ? ? ? ? ? ? ?p[i+1]=10*2;
? ? ? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ?p[i+1]=(s[i]%m)*2;
? ? ? ? ? ? ? ? } ? ?
? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? if(1==(s[14]%m)){
? ? ? ? ? ? ? ?//營業(yè)執(zhí)照編號(hào)正確!
? ? ? ? ? ? ? ? ret=true;
? ? ? ? ? ? ? ? $("#business_license").removeClass('check');
? ? ? ? ? ? ? ? $("#business_license").parent().siblings(".gddyTstext").text("營業(yè)執(zhí)照編號(hào)正確!");
? ? ? ? ? ? ? ? //alert("營業(yè)執(zhí)照編號(hào)正確!");
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ?//營業(yè)執(zhí)照編號(hào)錯(cuò)誤!
? ? ? ? ? ? ? ? ret=false;
? ? ? ? ? ? ? ? $("#business_license").addClass('check');
? ? ? ? ? ? ? ? $("#business_license").parent().siblings(".gddyTstext").text("營業(yè)執(zhí)照編號(hào)錯(cuò)誤!");
? ? ? ? ? ? ? ? //alert("營業(yè)執(zhí)照編號(hào)錯(cuò)誤!");
? ? ? ? ? ? ?}
? ? ? ? }//如果營業(yè)執(zhí)照為空
? ? ? ? else if(""==busCode){
? ? ? ? ? ? $("#business_license").addClass('check');
? ? ? ? ? ? $("#business_license").parent().siblings(".gddyTstext").text("營業(yè)執(zhí)照編號(hào)不能為空!");
? ? ? ? ? ? ret=false;
? ? ? ? }else{
? ? ? ? ? ? ret=false;
? ? ? ? ? ? $("#business_license").addClass('check');
? ? ? ? ? ? $("#business_license").parent().siblings(".gddyTstext").text("營業(yè)執(zhí)照格式不對(duì),必須是15位數(shù)的!");
? ? ? ? ? ? //alert("營業(yè)執(zhí)照格式不對(duì),必須是15位數(shù)的!");
? ? ? ? }
? ? ? ? return ret;
? ? }
? ? /**
*驗(yàn)證組織機(jī)構(gòu)代碼是否合法:組織機(jī)構(gòu)代碼為8位數(shù)字或者拉丁字母+“-”+1位校驗(yàn)碼。
*驗(yàn)證最后那位校驗(yàn)碼是否與根據(jù)公式計(jì)算的結(jié)果相符。
*編碼規(guī)則請(qǐng)參看
*http://wenku.baidu.com/view/d615800216fc700abb68fc35.html
*/
function isValidOrgCode(orgCode){
? ?//return ""==orgCode || orgCode.length==10;
? ?//return true;
? ?var ret=false;
? ?var codeVal = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
? ?var intVal = ? ?[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35];
? ?var crcs =[3,7,9,10,5,8,4,2];
? ?if(!(""==orgCode) && orgCode.length==10){
? ? ? var sum=0;
? ? ? for(var i=0;i<8;i++){
? ? ? ? ?var codeI=orgCode.substring(i,i+1);
? ? ? ? ?var valI=-1;
? ? ? ? ?for(var j=0;j<codeVal.length;j++){
? ? ? ? ? ? ?if(codeI==codeVal[j]){
? ? ? ? ? ? ? ? valI=intVal[j];
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ?}
? ? ? ? ?}
? ? ? ? ?sum+=valI*crcs[i];
? ? ? }
? ? ? var crc=11- (sum%11);
? ? ? ? ? ? ? ?
? ? ? switch (crc){
? ? ? ? ? ? ? ? ? ?case 10:{
? ? ? ? ? ? ? ? ? ? ? ?crc="X";
? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ?}default:{
? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?}
? ? ? //alert("crc="+crc+",inputCrc="+orgCode.substring(9));
? ? ? ? ? ? ? ?//最后位驗(yàn)證碼正確
? ? ? if(crc==orgCode.substring(9)){
? ? ? ? ? ? ? ? ? ?ret=true;
? ? ? ? ? ? ? ? ? ?$("#agency_code").removeClass('check');
? ? ? ? ? ? ? ? ? ?$("#agency_code").parent().siblings(".gddyTstext").text("正確!");
? ? ? }else{
? ? ? ? ? ? ? ? ? ?ret=false;
? ? ? ? ? ? ? ? ? ?$("#agency_code").addClass('check');
? ? ? ? ? ? ? ? ? ?$("#agency_code").parent().siblings(".gddyTstext").text("組織機(jī)構(gòu)代碼不正確!");
? ? ? ? ? ? ? ?}
? ?}else if(""==orgCode){
? ? ? ?ret=false;
? ? ? ? ? ? ? ? $("#agency_code").addClass('check');
? ? ? ? ? ? ? ? $("#agency_code").parent().siblings(".gddyTstext").text("組織機(jī)構(gòu)代碼不能為空!");
? ?}else{
? ? ? ? ? ? ? ? ret=false;
? ? ? ? ? ? ? ? $("#agency_code").addClass('check');
? ? ? ? ? ? ? ? $("#agency_code").parent().siblings(".gddyTstext").text("組織機(jī)構(gòu)代碼格式不正確,組織機(jī)構(gòu)代碼為8位數(shù)字或者拉丁字母+“-”+1位校驗(yàn)碼,并且字母必須大寫!");
? ? ? ? ? ? }
? ?return ret;
}
</script>
/*思路來源:
http://wenku.baidu.com/view/71e20c6f011ca300a6c390d2.html
*/
總結(jié)
以上是生活随笔為你收集整理的js验证身份证营业执照组织机构代码等的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成为一名初级游戏策划
- 下一篇: 【实用工具】如何录制电脑屏幕gif动图?