本文目錄一覽:
php有沒有驗證銀行卡號的正則表達式
假定銀行要求其營業廳的卡號格式為:1010 3576 xxxx xxx開始,每4位號碼後有空格 1010 3576是固定的,後8位任意數字,就可以這樣定義正規表達式:
with t as
(
select ‘1010 3576 1234 123’ id from dual union all
select ‘1010 3576 1234123’ id from dual union all
select ‘1010 35761234 123’ id from dual union all
select ‘1010 3576 1×34 123’ id from dual union all
select ‘1010 2576 1234 103’ id from dual union all
select ‘1010 35761234123’ id from dual union all
select ‘1010 3576 0234 123’ id from dual
)
select * from t where regexp_like(id,’1010 3576 [[:digit:]]{4} [[:digit:]]{3}’);
PHP怎麼實現的根據銀行卡號判斷是哪個銀行
每家銀行的前幾位代碼是不一樣的,根據前幾位代碼來進行判斷,比如:
浦東銀行622521
招行622588
建行622700 436742
交行622258
農行622848
這個問題的關鍵在於先要建立一個各家銀行的代碼標誌索引庫,再從庫中檢索,更多的代碼標誌請網上搜索相關資料。
PHP實現通過Luhn算法校驗信用卡卡號是否有效
本文實例講述了PHP實現通過Luhn算法校驗信用卡卡號是否有效的方法。分享給大家供大家參考。具體實現方法如下:
$numbers = “49927398716 49927398717 1234567812345678 1234567812345670”;
foreach (split(‘ ‘, $numbers) as $n)
echo “$n is “, luhnTest($n) ? ‘valid’ : ‘not valid’, ‘/br’;
function luhnTest($num) {
$len = strlen($num);
for ($i = $len-1; $i = 0; $i–) {
$ord = ord($num[$i]);
if (($len – 1) $i) {
$sum += $ord;
} else {
$sum += $ord / 5 + (2 * $ord) % 10;
}
}
return $sum % 10 == 0;
}
運行結果
49927398716 is valid
49927398717 is not valid
1234567812345678 is not valid
1234567812345670 is valid
下面是一個更為簡潔的代碼:
複製代碼 代碼如下:
function luhn_test($num) {
$str = ”;
foreach( array_reverse( str_split( $num ) ) as $i = $c ) $str .= ($i % 2 ? $c * 2 : $c );
return array_sum( str_split($str) ) % 10 == 0;
}
foreach (array(‘49927398716′,’49927398717′,’1234567812345678′,’1234567812345670’) as $n)
echo “$n is “, luhn_test($n) ? ‘valid’ : ‘not valid’, “/br\n”;
輸出結果如下
49927398716 is valid
49927398717 is not valid
1234567812345678 is not valid
1234567812345670 is valid
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/207287.html