JavaScript随机生成信用卡卡号的方法


Posted in Javascript onApril 07, 2015

本文实例讲述了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文件

<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>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
仅用[]()+!等符号就足以实现几乎任意Javascript代码
Mar 01 Javascript
利用js实现选项卡的特别效果的实例
Mar 03 Javascript
用JS将搜索的关键字高亮显示实现代码
Nov 08 Javascript
JsRender for index循环索引用法详解
Oct 31 Javascript
原生JS实现垂直手风琴效果
Feb 19 Javascript
微信小程序多张图片上传功能
Jun 07 Javascript
实现高性能javascript的注意事项
May 27 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
Sep 21 Javascript
jQuery实现可编辑的表格
Dec 11 jQuery
angularjs模态框的使用代码实例
Dec 20 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 jQuery
JavaScript实现信用卡校验方法
Apr 07 #Javascript
jQuery控制网页打印指定区域的方法
Apr 07 #Javascript
JavaScript使用指针操作实现约瑟夫问题实例
Apr 07 #Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
Apr 07 #Javascript
JavaScript中字符串分割函数split用法实例
Apr 07 #Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
Apr 07 #Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 #Javascript
You might like
PHP+DBM的同学录程序(4)
2006/10/09 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
新闻学专业应届生求职信
2013/11/08 职场文书
2014年导购员工作总结
2014/11/18 职场文书
实验室安全管理制度
2015/08/05 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP