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 相关文章推荐
为Extjs加加速(javascript加速)
Aug 19 Javascript
JS中令人发指的valueOf方法介绍
Feb 22 Javascript
js函数调用的方式
May 06 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
关于Javascript加载执行优化的研究报告
Dec 16 Javascript
javascript文件加载管理简单实现方法
Jul 25 Javascript
js将json格式的对象拼接成复杂的url参数方法
May 25 Javascript
原生js实现简单的Ripple按钮实例代码
Mar 24 Javascript
JavaScript实现微信号随机切换代码
Mar 09 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
javascript面向对象创建对象的方式小结
Jul 29 Javascript
bootstrap-table后端分页功能完整实例
Jun 01 Javascript
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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
js变量、作用域及内存详解
2014/09/23 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
Python判断有效的数独算法示例
2019/02/23 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
解决Django中多条件查询的问题
2019/07/18 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
产品质量承诺书
2014/03/27 职场文书
森林防火标语
2014/06/23 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
基层党员对照检查材料
2014/08/25 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang