您的位置:

php信用卡卡号验证函数,php信用卡卡号验证函数怎么用

本文目录一览:

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 1x34 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