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 相关文章推荐
9个JavaScript评级/投票插件
Jan 18 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
使用jquery实现div的tab切换实例代码
May 27 Javascript
js 日期比较相关天数代码
Apr 02 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
javascript中alert()与console.log()的区别
Aug 26 Javascript
JavaScript中数组的22种方法必学(推荐)
Jul 20 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
vuejs指令详解
Feb 07 Javascript
浅谈Vue.use的使用
Aug 29 Javascript
vue实现单一筛选、删除筛选条件
Oct 26 Javascript
JavaScript数组 几个常用方法总结
Nov 11 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python实现封装得到virustotal扫描结果
2014/10/05 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
django缓存配置的几种方法详解
2018/07/16 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
python实现求特征选择的信息增益
2018/12/18 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
公司合作意向书
2014/04/01 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
法律意见书范文
2015/06/04 职场文书
组织委员竞选稿
2015/11/21 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
浅谈python中的多态
2021/06/15 Python
centos8安装MongoDB的详细过程
2021/10/24 MongoDB