首页 > 编程知识 正文

美国visa信用卡卡号,信用卡卡号几位数

时间:2023-05-03 11:51:58 阅读:211918 作者:4449

[php]代码库// This function will take a credit card number and check to make sure it

// contains the right amount of digits and uses the Luhn Algorithm to

// weed out made up numbers

function validateCreditcard_number($credit_card_number)

{

// Get the first digit

$firstnumber = substr($credit_card_number, 0, 1);

// Make sure it is the correct amount of digits. Account for dashes being present.

switch ($firstnumber)

{

case 3:

if (!preg_match('/^3d{3}[ -]?d{6}[ -]?d{5}$/', $credit_card_number))

{

return 'This is not a valid American Express card number';

}

break;

case 4:

if (!preg_match('/^4d{3}[ -]?d{4}[ -]?d{4}[ -]?d{4}$/', $credit_card_number))

{

return 'This is not a valid Visa card number';

}

break;

case 5:

if (!preg_match('/^5d{3}[ -]?d{4}[ -]?d{4}[ -]?d{4}$/', $credit_card_number))

{

return 'This is not a valid MasterCard card number';

}

break;

case 6:

if (!preg_match('/^6011[ -]?d{4}[ -]?d{4}[ -]?d{4}$/', $credit_card_number))

{

return 'This is not a valid Discover card number';

}

break;

default:

return 'This is not a valid credit card number';

}

// Here's where we use the Luhn Algorithm

$credit_card_number = str_replace('-', '', $credit_card_number);

$map = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

0, 2, 4, 6, 8, 1, 3, 5, 7, 9);

$sum = 0;

$last = strlen($credit_card_number) - 1;

for ($i = 0; $i <= $last; $i++)

{

$sum += $map[$credit_card_number[$last - $i] + ($i & 1) * 10];

}

if ($sum % 10 != 0)

{

return 'This is not a valid credit card number';

}

// If we made it this far the credit card number is in a valid format

return 'This is a valid credit card number';

}

echo validateCreditcard_number('4111-1111-1111-1111'); // This is a valid credit card number

echo validateCreditcard_number('4111-1111-1111-1112'); // This is not a valid credit card number

echo validateCreditcard_number('5558-545f-1234'); // This is not a valid MasterCard card number

echo validateCreditcard_number('9876-5432-1012-3456'); // This is not a valid credit card number

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。