»
AnglaisFrançaisVietnamien

Imprimer - Numéro de carte de crédit de validation - JavaScriptBank.com

Version complète: jsB@nk » Utilitaire » Numéro de carte de crédit de validation
URL: https://www.javascriptbank.com/credit-card-number-validation.html

Numéro de carte de crédit de validation © JavaScriptBank.comDéterminer si un numéro de carte de crédit pourrait être valide avant de le soumettre en temps réel d'authentification en ligne. Basé sur la norme ANSI X4.13, la formule LUHN, alias le 10 Mod algorithme est utilisé pour valider les numéros de carte de crédit précis. Nombreux commentaires.

Version complète: jsB@nk » Utilitaire » Numéro de carte de crédit de validation
URL: https://www.javascriptbank.com/credit-card-number-validation.html



JavaScript
<script type="text/javascript"><!--/* Created by: David Leppek :: https://www.azcode.com/Mod10Basically, the alorithum takes each digit, from right to left and muliplies each seconddigit by two. If the multiple is two-digits long (i.e.: 6 * 2 = 12) the two digits ofthe multiple are then added together for a new number (1 + 2 = 3). You then add up the string of numbers, both unaltered and new values and get a total sum. This sum is thendivided by 10 and the remainder should be zero if it is a valid credit card. Hense thename Mod 10 or Modulus 10. */function Mod10(ccNumb) {  // v2.0var valid = "0123456789"  // Valid digits in a credit card numbervar len = ccNumb.length;  // The length of the submitted cc numbervar iCCN = parseInt(ccNumb);  // integer of ccNumbvar sCCN = ccNumb.toString();  // string of ccNumbsCCN = sCCN.replace (/^\s+|\s+$/g,'');  // strip spacesvar iTotal = 0;  // integer total set at zerovar bNum = true;  // by default assume it is a numbervar bResult = false;  // by default assume it is NOT a valid ccvar temp;  // temp variable for parsing stringvar calc;  // used for calculation of each digit// Determine if the ccNumb is in fact all numbersfor (var j=0; j<len; j++) {  temp = "" + sCCN.substring(j, j+1);  if (valid.indexOf(temp) == "-1"){bNum = false;}}// if it is NOT a number, you can either alert to the fact, or just pass a failureif(!bNum){  /*alert("Not a Number");*/bResult = false;}// Determine if it is the proper length if((len == 0)&&(bResult)){  // nothing, field is blank AND passed above # check  bResult = false;} else{  // ccNumb is a number and the proper length - let's see if it is a valid card number  if(len >= 15){  // 15 or 16 for Amex or V/MC    for(var i=len;i>0;i--){  // LOOP throught the digits of the card      calc = parseInt(iCCN) % 10;  // right most digit      calc = parseInt(calc);  // assure it is an integer      iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit      i--;  // decrement the count - move to the next digit in the card      iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb      calc = parseInt(iCCN) % 10 ;    // NEXT right most digit      calc = calc *2;                                 // multiply the digit by two      // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,      // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.      switch(calc){        case 10: calc = 1; break;       //5*2=10 & 1+0 = 1        case 12: calc = 3; break;       //6*2=12 & 1+2 = 3        case 14: calc = 5; break;       //7*2=14 & 1+4 = 5        case 16: calc = 7; break;       //8*2=16 & 1+6 = 7        case 18: calc = 9; break;       //9*2=18 & 1+8 = 9        default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers      }                                                   iCCN = iCCN / 10;  // subtracts right most digit from ccNum    iTotal += calc;  // running total of the card number as we loop  }  // END OF LOOP  if ((iTotal%10)==0){  // check to see if the sum Mod 10 is zero    bResult = true;  // This IS (or could be) a valid credit card number.  } else {    bResult = false;  // This could NOT be a valid credit card number    }  }}// change alert to on-page display or other indication as needed.if(bResult) {  alert("This IS a valid Credit Card Number!");}if(!bResult){  alert("This is NOT a valid Credit Card Number!");}  return bResult; // Return the results}// --></script><!--    This script downloaded from www.JavaScriptBank.com    Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->


HTML
<form name="Form1"><table width="50%" border="0" cellspacing="0" cellpadding="5">  <tr>    <td width="50%" align="right">Credit Card Number:   </td>    <td width="50%">      <input name="CreditCard" type="text" value="4012888888881881" size="18" maxlength="16" style="border: 1px solid #000098; padding: 3px;">    </td>  </tr>  <tr>    <td colspan="2" align="center">      <input type="button" name="Button" style="color: #fff; background: #000098; font-weight:bold; border: solid 1px #000;" value="TEST CARD NUMBER" onClick="return Mod10(document.Form1.CreditCard.value);">    </td>  </tr></table></form><!--    This script downloaded from www.JavaScriptBank.com    Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->