Maison  >  Article  >  interface Web  >  Méthode JavaScript pour générer aléatoirement des numéros de carte de crédit_compétences javascript

Méthode JavaScript pour générer aléatoirement des numéros de carte de crédit_compétences javascript

WBOY
WBOYoriginal
2016-05-16 16:05:131102parcourir

L'exemple de cet article décrit comment générer aléatoirement des numéros de carte de crédit à l'aide de JavaScript. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Ce code JS génère de manière aléatoire des numéros de carte de crédit selon les règles de génération de numéros de carte de crédit. Il peut être vérifié et sert uniquement de référence d'apprentissage. Veuillez ne pas l'utiliser à des fins illégales, sinon vous serez responsable des conséquences.

var visaPrefixList = new Array(
 "4539",
 "4556",
 "4916",
 "4532",
 "4929",
 "40240071",
 "4485",
 "4716",
 "4"
);
var mastercardPrefixList = new Array(
 "51",
 "52",
 "53",
 "54",
 "55"
);
var amexPrefixList = new Array(
 "34",
 "37"
);
var discoverPrefixList = new Array("6011");
var dinersPrefixList = new Array(
 "300",
 "301",
 "302",
 "303",
 "36",
 "38"
);
var enRoutePrefixList = new Array(
 "2014",
 "2149"
);
var jcbPrefixList = new Array(
 "35"
);
var voyagerPrefixList = new Array("8699");
function strrev(str) {
  if (!str) return '';
  var revstr='';
  for (i = str.length-1; i>=0; i--)
   revstr+=str.charAt(i)
  return revstr;
}
/*
'prefix' is the start of the CC number as a string, 
any number of digits.
'length' is the length of the CC number to generate. 
Typically 13 or 16
*/
function completed_number(prefix, length) {
 var ccnumber = prefix;
 // generate digits
 while ( ccnumber.length < (length - 1) ) {
  ccnumber += Math.floor(Math.random()*10);
 }
 // reverse number and convert to int
 var reversedCCnumberString = strrev( ccnumber );
 var reversedCCnumber = new Array();
 for ( var i=0; i < reversedCCnumberString.length; i++ ) {
  reversedCCnumber[i] = parseInt(reversedCCnumberString.charAt(i));
 }
 // calculate sum
 var sum = 0;
 var pos = 0;
 while ( pos < length - 1 ) {
  odd = reversedCCnumber[ pos ] * 2;
  if ( odd > 9 ) {
   odd -= 9;
  }
  sum += odd;
  if ( pos != (length - 2) ) {
 
   sum += reversedCCnumber[ pos +1 ];
  }
  pos += 2;
 }
 // calculate check digit
 var checkdigit = ((Math.floor(sum/10)+1)*10-sum)%10;
 ccnumber += checkdigit;
 return ccnumber;
}
function credit_card_number(prefixList, length, howMany) {
 var result = new Array();
 for (var i = 0; i < howMany; i++) {
  var randomArrayIndex = Math.floor(Math.random() * 
 prefixList.length);
  var ccnumber = prefixList[ randomArrayIndex ];
  result.push( completed_number(ccnumber, length) );
 }
 return result;
}

Méthode d'appel :

Enregistrez le code ci-dessus sous le fichier gencc.js

<html>
<head>
<script src="gencc.js" type="text/javascript"></script>
</head>
<body>
<h3>VISA:</h3>
<script>
var visa = credit_card_number(visaPrefixList, 16, 3);
document.write( visa );
</script>
<h3>Amex:</h3>
<script>
var amex = credit_card_number(amexPrefixList, 15, 3);
document.write( amex );
</script>
</body>
</html>

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn