驗證信用卡號碼是否正確
- 2008-11-15
- 22377
- 0
驗證的公式就是必須要有的,這次demo參考了信用卡號碼的公式撰寫了這驗證的code,因為demo的新公司使用VB.net來寫asp.net所以這也是demo第一次寫VB算是一個經驗與紀錄吧。
先來說說信用卡的公式吧規則為【由右至左(共 1~ 16 ),奇數位乘上 1 ,偶數位乘上 2 ,共得出 16 個[新數字],再將每個[新數字]的十位數加上個位數,再產生[新新數字];共16個[新新數字]把所有16個[新新數字]合計加總,能整除10者,為正確卡號。 】,但是demo因為不想用減得所以程式內寫成由左至右,奇數×2偶數×1,這點有些不同還請注意
VB.NET
Dim creditCardNumber As String
creditCardNumber = "1234567891234563" '這裡請自行帶入你要驗證的號碼
If creditCardNumber.Length < 16 Then
Page.ClientScript.RegisterStartupScript(Me.GetType(), "dd", "alert('錯誤數字只有" & creditCardNumber.Length & "碼');", True)
Else
Dim Int(15) As Integer
Dim x, num, sun As Integer
For x = 0 To 15
num = creditCardNumber.Substring(x, 1)
If (x + 1) Mod 2 <> 0 Then '偶數乘1奇數乘2
Int(x) = num * 2
Else
Int(x) = num
End If
Next
For x = 0 To 15
If (Int(x) > 9) Then
Int(x) = (Int(x) Mod 10) + 1
End If
sun += Int(x)
Next
If (sun Mod 10 = 0) Then
Page.ClientScript.RegisterStartupScript(Me.GetType(), "ddd", "alert('正確的信用卡');", True)
Else
Page.ClientScript.RegisterStartupScript(Me.GetType(), "dd", "alert('錯誤');", True)
End If
End If
C#
string creditCardNumber = "1234567891234563"; //這裡請自行帶入你要驗證的號碼
if (creditCardNumber.Length < 16)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "dd", "alert('錯誤數字只有" + creditCardNumber.Length + "碼');", true);
}
else
{
int[] Int = new int[16];
int x = 0;
int num = 0;
int sun = 0;
for (x = 0; x <= 15; x++)
{
num = Convert.ToInt16(creditCardNumber.Substring(x, 1));
//偶數乘1奇數乘2
if ((x + 1) % 2 != 0)
{
Int[x] = num * 2;
}
else
{
Int[x] = num;
}
}
for (x = 0; x <= 15; x++)
{
if (Int[x] > 9)
{
Int[x] = (Int[x] % 10) + 1;
}
sun += Int[x];
}
if (sun % 10 == 0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "ddd", "alert('正確的信用卡');", true);
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "dd", "alert('錯誤');", true);
}
}
http://www.csie.ntu.edu.tw/%7Er88009/%ABH%A5%CE%A5d%A5d%B8%B9%C0%CB%ACd%BE%B9.htm








Roslyn 魔法工坊:打造你的 Source Generator [2025-12-20]開課 共7H
回應討論