Validating a credit card number : Regular Expressions « String « PHP






Validating a credit card number

 
<?php
function is_valid_credit_card($s) {
    $s = strrev(preg_replace('/[^\d]/','',$s));
    $sum = 0;
    for ($i = 0, $j = strlen($s); $i < $j; $i++) {
        if (($i % 2) == 0) {
            $val = $s[$i];
        } else {
            $val = $s[$i] * 2;
            if ($val > 9) { $val -= 9; }
        }
        $sum += $val;
    }
    return (($sum % 10) == 0);
}

if (! is_valid_credit_card($_POST['credit_card'])) {
    print 'Sorry, that card number is invalid.';
}
?>
  
  








Related examples in the same category

1.Brackets [] finds a range of characters.
2.Character Classes
3.Complete list of regular expression examples
4.\b and \B, equate to "On a word boundary" and "Not on a word boundary," respectively.
5.^ and $ are line anchors.
6.Line Anchors
7.Match URL
8.Match an IP address
9.Match the smallest number of characters starting with "p" and ending with "t"
10.Matching GUIDs/UUIDs
11.Matching a Valid E-mail Address
12.Matching a Valid IP Address
13.Matching using backreferences
14.Matching with Greedy vs. Nongreedy Expressions
15.Matching with character classes and anchors
16.Matching with |
17.Define a pattern and use parentheses to match individual elements within it
18.Greedy Qualifiers
19.Greedy and non-greedy matching
20.Greedy versus nongreedy matching
21.Grouping captured subpatterns
22.Validating Pascal Case Names
23.Validating U.S. Currency
24.Nongreedy Qualifiers
25.POSIX Regular Expressions Character Classes
26.POSIX Regular Expressions Character Classes
27.Ranges
28.Option patterns:
29.Predefined Character Ranges (Character Classes)
30.Pattern matches:
31.Pattern match extenders:
32.Perl-Compatible Regular Expressions (PCRE)
33.Qualifiers restrict the number of times the preceding expression may appear.
34.Quantifiers for Matching a Recurring Character
35.Quantifiers: +, *, ?, {int. range}, and $ follow a character sequence:
36.Special classes for regular expression
37.Regular expressions using character classes