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.