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更改class和id的方法
Oct 10 Javascript
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
Mar 23 Javascript
无缝滚动js代码通俗易懂(自写)
Jun 19 Javascript
JavaScript eval() 函数介绍及应用示例
Jul 29 Javascript
React复制到剪贴板的示例代码
Aug 22 Javascript
webpack中使用iconfont字体图标的方法
Feb 22 Javascript
react.js组件实现拖拽复制和可排序的示例代码
Aug 20 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
Jun 24 Javascript
vue下的@change事件的实现
Oct 25 Javascript
jQuery实现简单日历效果
Jul 05 jQuery
jQuery编写QQ简易聊天框
Aug 27 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
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
python返回昨天日期的方法
2015/05/13 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
Anaconda入门使用总结
2018/04/05 Python
Python中extend和append的区别讲解
2019/01/24 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
Pytorch之parameters的使用
2019/12/31 Python
Django中modelform组件实例用法总结
2020/02/10 Python
Python自动化操作实现图例绘制
2020/07/09 Python
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
初一学生评语大全
2014/04/24 职场文书
清明节演讲稿
2014/05/27 职场文书
就业协议书
2014/09/12 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
长城英文导游词
2015/01/30 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书