驗證統一編號是否正確
- 4611
- 1
在相關註冊畫面的時候可以直接去驗證輸入的公司統一編號是否正確,這種公式的東西就是要紀錄下來啦。
- 2009.03.01 再次修正語法 都考慮進去了不會再有問題啦
- 2008.11.20 修正語法的錯誤少了一段第七位為7的例外,順便加上VB.NET的code
- 2008.11.04 修正.NET2.0版的語法錯誤
- 2008.11.04 因.NET3.5版本已無意義,所以刪除
這種公式的東西沒啥好解釋的,用就對了
private Boolean CheckCompanyN(string CompanyId)
{
int CompanyNo;
if (CompanyId == null || CompanyId.Trim().Length != 8)
return false;
if (!int.TryParse(CompanyId, out CompanyNo))
return false;
int[] Logic = new int[] { 1, 2, 1, 2, 1, 2, 4, 1 };
int addition, sum = 0, j = 0, x;
for (x = 0; x < Logic.Length; x++)
{
int no = Convert.ToInt32(CompanyId.Substring(x, 1));
j = no * Logic[x];
addition = ((j / 10) + (j % 10));
sum += addition;
}
if (sum % 10 == 0)
{
return true;
}
if (CompanyId.Substring(6, 1) == "7")
{
if (sum % 10 == 9)
{
return true;
}
}
return false;
}

網友回應
- jenming

- 發表於: 2009-03-01
- 謝謝您的分享,但是在測試統編如 23638777(華碩) 卻會 return false..
-
相當的抱歉,我剛剛重新review 一次驗證公式和我的code再加上了一條判斷,驗證了幾個統編已經沒有問題了,如果還有忽略的部份還請再通報謝謝。
回覆於: 2009-03-01