JavaScript随机生成信用卡卡号的方法
这段JS代码根据信用卡卡号产生规则随机生成信用卡卡号,是可以通过验证的,仅供学习参考,请不要用于非法用途,否则后果自负。
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;
}
调用方法:
将上面的代码保存为gencc.js文件
VISA:
Amex:
希望本文所述对大家的javascript程序设计有所帮助。
【JavaScript随机生成信用卡卡号的方法】转载于:https://www.cnblogs.com/tsql/p/7340084.html
推荐阅读
- 事件代理
- 数组常用方法一
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- ssh生成公钥秘钥
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- 15、IDEA学习系列之其他设置(生成javadoc、缓存和索引的清理等)
- 临床统计学学习日志
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- JavaScript|vue 基于axios封装request接口请求——request.js文件