組織機構代碼驗證規則:
組織機構代碼是每一個機關、社會團體、企事業單位在全國范圍內唯一的、始終不變的法定代碼標識。
最新使用的組織機構代碼在1997年頒布實施,由8位數字(或大寫拉丁字母)本體代碼和1位數字(或大寫拉丁字母)校驗碼組成。本體代碼采用系列(即分區段)順序編碼方法。校驗碼按下列公式計算:
8
C9 = 11 - MOD ( ∑Ci * Wi ,11) … (2)
i=1
其中:MOD —— 表示求余函數;
i —— 表示代碼字符從左到右位置序號;
Ci —— 表示第i位置上的代碼字符的值,采用附錄A“代碼字符集”所列字符;
C9 —— 表示校驗碼;
Wi —— 表示第i位置上的加權因子,其數值如下表:
i 1 2 3 4 5 6 7 8
Wi 3 7 9 10 5 8 4 2
當MOD函數值為1(即 C9 = 10)時,校驗碼用字母X表示。?
JavaScrip版:
view plaincopy to clipboardprint?
function?isValidEntpCode(code,?has)?{??????var?ws?=?[3,?7,?9,?10,?5,?8,?4,?2];??????var?str?=?'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';??????var?reg?=?/^([0-9A-Z]){8}$/;???????if?(!reg.test(C1_8))?{??????????return?false;??????}??????var?sum?=?0;??????for?(var?i?=?0;?i?<?8;?i++)?{??????????sum?+=?str.indexOf(C1_8.charAt(i))?*?ws[i];??????}??????var?C9?=?11?-?(sum?%?11);??????if?(C9?==?11)?{??????????return?'0';??????}?else?if?(C9?==?10)?{??????????return?'X'??????}?else?{??????????return?C9??????}??}??document.writeln(isValidEntpCode("E0000000-X"));??document.writeln(isValidEntpCode("790E3765-0"));??document.writeln(isValidEntpCode("79013765-X"));??document.writeln(isValidEntpCode("78305975-3"));?? ?Java版:
view plaincopy to clipboardprint?
import?org.slf4j.Logger;??import?org.slf4j.LoggerFactory;????public?class?ValidateUtils?{????????protected?static?final?Logger?logger?=?LoggerFactory.getLogger(ValidateUtils.class);???????????????????public?static?final?boolean?isValidEntpCode(String?code)?{??????????int[]?ws?=?{?3,?7,?9,?10,?5,?8,?4,?2?};??????????String?str?=?"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";??????????String?regex?=?"^([0-9A-Z]){8}-[0-9|X]$";????????????if?(!code.matches(regex))?{??????????????return?false;??????????}??????????int?sum?=?0;??????????for?(int?i?=?0;?i?<?8;?i++)?{??????????????sum?+=?str.indexOf(String.valueOf(code.charAt(i)))?*?ws[i];??????????}??????????logger.info("sum?is?{}",?sum);??????????logger.info("sum?%?11?is?{}",?sum?%?11);????????????int?c9?=?11?-?(sum?%?11);????????????String?sc9?=?String.valueOf(c9);??????????if?(11?==?c9)?{??????????????sc9?=?"0";??????????}?else?if?(10?==?c9)?{??????????????sc9?=?"X";??????????}??????????logger.info("sc9?is?{}",?sc9);??????????return?sc9.equals(String.valueOf(code.charAt(9)));??????}??}??http://blog.csdn.net/kimsoft/archive/2009/01/14/3776068.aspx
轉載于:https://www.cnblogs.com/sk-net/archive/2011/06/20/2085202.html
總結
以上是生活随笔為你收集整理的企业组织机构代码验证JavaScript版和Java版 - 修正版V20090214的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。