Mega Code Archive

 
Categories / JavaScript Tutorial / Regular Expressions
 

Validate MasterCard

< html>     <head>         <title>MasterCard Example</title>         <script type="text/javascript">                 function luhnCheckSum(sCardNum) {                     var iOddSum = 0;                     var iEvenSum = 0;                     var bIsOdd = true;                     for (var i=sCardNum.length-1; i >= 0; i--) {                         var iNum = parseInt(sCardNum.charAt(i));                         if (bIsOdd) {                             iOddSum += iNum;                         } else {                             iNum = iNum * 2;                             if (iNum > 9) {                                 iNum = eval(iNum.toString().split("").join("+"));                             }                             iEvenSum += iNum;                         }                         bIsOdd = !bIsOdd;                     }                     return ((iEvenSum + iOddSum) % 10 == 0);                 }                 function isValidMasterCard(sText) {                     var reMasterCard = /^(5[1-5]\d{2})[\s\-]?(\d{4})[\s\-]?(\d{4})[\s\-]?(\d{4})$/;                     if (reMasterCard.test(sText)) {                         var sCardNum = RegExp.$1 + RegExp.$2 + RegExp.$3 + RegExp.$4;                         return luhnCheckSum(sCardNum);                     } else {                         return false;                     }                 }                 function validate() {                     var oInput1 = document.getElementById("txt1");                     if (isValidMasterCard(oInput1.value)) {                         alert("Valid");                     } else {                         alert("Invalid!");                     }                 }         </script>     </head>     <body>         <P>MasterCard Number: <input type="text" id="txt1" /><br />         <input type="button" value="Validate" onclick="validate()" /></p>     </body> </html> Quote from: Professional JavaScript for Web Developers by Nicholas C. Zakas (Author) # Paperback: 672 pages # Publisher: Wrox (April 22, 2005) # Language: English # ISBN-10: 0764579088 # ISBN-13: 978-0764579080