SitePoint Sponsor

User Tag List

Results 1 to 1 of 1
  1. #1
    SitePoint Addict
    Join Date
    Jan 2006
    Posts
    246
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Creditcard Validation not working?

    hello all

    i,m new to this so bare with me

    i,m trying to use this to validate different types of credit card numbers but is not working.


    somone please have alook and tell me the stupid mistake i made

    thanks

    Code:
    <html>
      <head>
        <title></title>
        <meta content="">
        <style></style>
    
    <HEAD>
    
    <script type="text/javascript">
    
    function isValidCreditCard(type, ccnum) {
       if (type == "Visa") {
          // Visa: length 16, prefix 4, dashes optional.
          var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
       } else if (type == "MC") {
          // Mastercard: length 16, prefix 51-55, dashes optional.
          var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
       } else if (type == "Disc") {
          // Discover: length 16, prefix 6011, dashes optional.
          var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
       } else if (type == "AmEx") {
          // American Express: length 15, prefix 34 or 37.
          var re = /^3[4,7]\d{13}$/;
       } else if (type == "Diners") {
          // Diners: length 14, prefix 30, 36, or 38.
          var re = /^3[0,6,8]\d{12}$/;
       }
       if (!re.test(ccnum)) return false;
       // Remove all dashes for the checksum checks to eliminate negative numbers
       ccnum = ccnum.split("-").join("");
       // Checksum ("Mod 10")
       // Add even digits in even length strings or odd digits in odd length strings.
       var checksum = 0;
       for (var i=(2-(ccnum.length % 2)); i<=ccnum.length; i+=2) {
          checksum += parseInt(ccnum.charAt(i-1));
       }
       // Analyze odd digits in even length strings or even digits in odd length strings.
       for (var i=(ccnum.length % 2) + 1; i<ccnum.length; i+=2) {
          var digit = parseInt(ccnum.charAt(i-1)) * 2;
          if (digit < 10) { checksum += digit; } else { checksum += (digit-9); }
       }
       if ((checksum % 10) == 0) return true; else return false;
    }
    // -->
    </script>
    </HEAD>
    
    
    
    <div align="center">
    <form name="Form1">
    
          <input name="CreditCard" type="text" onClick="isValidCreditCard(this)" value="4012888888881881" size="18" maxlength="16"/>
    
          <input type="button" name="Button" value="TEST CARD NUMBER" onClick="isValidCreditCard(this)"/>
    
    </table>
    </form>
    </div>
    </body>
    </html>


    thanks for looking
    Last edited by stymiee; Apr 7, 2006 at 04:47.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •