JavaScript随机生成信用卡卡号的方法
本文实例讲述了JavaScript随机生成信用卡卡号的方法。分享给大家供大家参考。具体分析如下:
这段JS代码根据信用卡卡号产生规则随机生成信用卡卡号,是可以通过验证的,仅供学习参考,请不要用于非法用途,否则后果自负。
varvisaPrefixList=newArray(
"4539",
"4556",
"4916",
"4532",
"4929",
"40240071",
"4485",
"4716",
"4"
);
varmastercardPrefixList=newArray(
"51",
"52",
"53",
"54",
"55"
);
varamexPrefixList=newArray(
"34",
"37"
);
vardiscoverPrefixList=newArray("6011");
vardinersPrefixList=newArray(
"300",
"301",
"302",
"303",
"36",
"38"
);
varenRoutePrefixList=newArray(
"2014",
"2149"
);
varjcbPrefixList=newArray(
"35"
);
varvoyagerPrefixList=newArray("8699");
functionstrrev(str){
if(!str)return'';
varrevstr='';
for(i=str.length-1;i>=0;i--)
revstr+=str.charAt(i)
returnrevstr;
}
/*
'prefix'isthestartoftheCCnumberasastring,
anynumberofdigits.
'length'isthelengthoftheCCnumbertogenerate.
Typically13or16
*/
functioncompleted_number(prefix,length){
varccnumber=prefix;
//generatedigits
while(ccnumber.length<(length-1)){
ccnumber+=Math.floor(Math.random()*10);
}
//reversenumberandconverttoint
varreversedCCnumberString=strrev(ccnumber);
varreversedCCnumber=newArray();
for(vari=0;i<reversedCCnumberString.length;i++){
reversedCCnumber[i]=parseInt(reversedCCnumberString.charAt(i));
}
//calculatesum
varsum=0;
varpos=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;
}
//calculatecheckdigit
varcheckdigit=((Math.floor(sum/10)+1)*10-sum)%10;
ccnumber+=checkdigit;
returnccnumber;
}
functioncredit_card_number(prefixList,length,howMany){
varresult=newArray();
for(vari=0;i<howMany;i++){
varrandomArrayIndex=Math.floor(Math.random()*
prefixList.length);
varccnumber=prefixList[randomArrayIndex];
result.push(completed_number(ccnumber,length));
}
returnresult;
}
调用方法:
将上面的代码保存为gencc.js文件
<html> <head> <scriptsrc="gencc.js"type="text/javascript"></script> </head> <body> <h3>VISA:</h3> <script> varvisa=credit_card_number(visaPrefixList,16,3); document.write(visa); </script> <h3>Amex:</h3> <script> varamex=credit_card_number(amexPrefixList,15,3); document.write(amex); </script> </body> </html>
希望本文所述对大家的javascript程序设计有所帮助。