topical media & game development

talk show tell print

professional-javascript-07-VisaExample.htm / htm



  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  
  <html>
      <head>
          <title>Visa 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 isValidVisa(sText) {
                      var reVisa = /^(4\d{12}(?:\d{3})?)/;
                  
                      if (reVisa.test(sText)) {
                          return luhnCheckSum(RegExp.$1);
                      } else {
                          return false; 
                      }
                  }
  
                  
                  function validate() {
                      var oInput1 = document.getElementById("txt1");
                      if (isValidVisa(oInput1.value)) {
                          alert("Valid");
                      } else {
                          alert("Invalid!");
                      }
  
                  }
          </script>
      </head>
      <body>
  
          <p>Visa Number: <input type="text" id="txt1" /><br />
          <input type="button" value="Validate" onclick="validate()" /></p>
         
      </body>
  </html>
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.