Java 銀行卡和身份證號根據校驗位驗證是否合法

2021-07-24 20:54:06 字數 3131 閱讀 5481

1、銀行卡號碼的校驗

/**  

* 校驗銀行卡卡號

* @param cardid

* @return

*/

public static boolean checkbankcard(string cardid)

return cardid.charat(cardid.length() - 1 ) == bit;

} /**

* 從不含校驗位的銀行卡卡號採用 luhm 校驗演算法獲得校驗位

* @param noncheckcodecardid

* @return

*/

public static char getbankcardcheckcode(string noncheckcodecardid)

char chs = noncheckcodecardid.trim().tochararray();

int luhmsum = 0 ;

for ( int i = chs.length - 1 , j = 0 ; i >= 0 ; i--, j++)

luhmsum += k;

} return (luhmsum % 10 == 0 ) ? '0' : ( char )(( 10 - luhmsum % 10 ) + '0' );

}

2、身份證件號碼的校驗
/**  

* strno:使用者輸入的身份證件號碼

* _id:用來承載錯誤資訊的控制項id號,用來進行友好提示

*判斷身份證號碼格式函式

*公民身份號碼是特徵組合碼,

*如果驗證通過 返回 true

*/

function ischinaidcard(strno, _id)

} else if (strno.length == 18)

} else

if (strno.length == 18)

a = parseint(strno.substr(0, 1)) * 7 + parseint(strno.substr(1, 1))

* 9 + parseint(strno.substr(2, 1)) * 10;

a = a + parseint(strno.substr(3, 1)) * 5

+ parseint(strno.substr(4, 1)) * 8

+ parseint(strno.substr(5, 1)) * 4;

a = a + parseint(strno.substr(6, 1)) * 2

+ parseint(strno.substr(7, 1)) * 1

+ parseint(strno.substr(8, 1)) * 6;

a = a + parseint(strno.substr(9, 1)) * 3

+ parseint(strno.substr(10, 1)) * 7

+ parseint(strno.substr(11, 1)) * 9;

a = a + parseint(strno.substr(12, 1)) * 10

+ parseint(strno.substr(13, 1)) * 5

+ parseint(strno.substr(14, 1)) * 8;

a = a + parseint(strno.substr(15, 1)) * 4

+ parseint(strno.substr(16, 1)) * 2;

b = a % 11;

if (b == 2) //最後一位為校驗位

else

switch (b)

break ;

case 1:

if (c != 0)

break ;

case 2:

if (c != "x" )

break ;

case 3:

if (c != 9)

break ;

case 4:

if (c != 8)

break ;

case 5:

if (c != 7)

break ;

case 6:

if (c != 6)

break ;

case 7:

if (c != 5)

break ;

case 8:

if (c != 4)

break ;

case 9:

if (c != 3)

break ;

case 10:

if (c != 2)

} } else

} return true ;

} /**

* 驗證身份證件中的日期是否合法有效

* @param iy

* @param im

* @param id

* @param _id

* @return

*/

function isvaliddate(iy, im, id, _id)

if (im > 12 || im <= 0 || !isnumber(im))

if (id > 31 || id <= 0 || !isnumber(id))

return true ;

} /**

* 驗證是否為數字

* @param onum

* @return

*/

function isnumber(onum) catch (ex)

return true ;

}

供參考,做備份記錄

身份證號驗證 銀行卡號驗證

身份證號驗證 審批系統的身份證驗證 身份證15位編碼規則 dddddd yymmdd xx p dddddd 6位地區編碼 yymmdd 出生年 兩位年 月日,如 910215 xx 順序編碼,系統產生,無法確定 p 性別,奇數為男,偶數為女 身份證18位編碼規則 dddddd yyyymmdd y...

身份證,銀行卡丟失後

1.立馬打 到銀行,對銀行卡進行口頭掛失,對銀行卡進行凍結,一般會有幾天的凍結期,如廣發是5天,工商是15天。2.去派出所報案,立乙個案,這一步基本不會起到什麼作用,因為派出所每天會接到n多這樣的案子,在他們看來,這事太小了。但還是得立一下,其會開乙個立案回執單。3.辦臨時身份證,由於臨時身份證的辦...

身份證 銀行卡識別方案

b.月介面呼叫總量 0 呼叫量 1000 1000 呼叫量 1萬 1萬 呼叫量 10萬 10萬以上 身份證識別 免費0.2元 次 0.12元 次 0.08元 次 銀行卡免費 0.2元 次 0.15元 次 0.08元 次 月介面呼叫總量 0 呼叫量 15000 500次 日 0 呼叫量 5萬 5萬 呼...