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 URL编码和解码使用说明
Apr 12 Javascript
JavaScript 拾碎[三] 使用className属性
Oct 16 Javascript
图片onload事件触发问题解决方法
Jul 31 Javascript
IE下JS读取xml文件示例代码
Aug 05 Javascript
原生javascript实现的一个简单动画效果
Mar 30 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
Vue2路由动画效果的实现代码
Jul 10 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
vue2 前端搜索实现示例
Feb 26 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
Mar 13 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
Sep 01 Javascript
Echarts如何重新渲染实例详解
May 30 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和ACCESS写聊天室(五)
2006/10/09 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
DOM 基本方法
2009/07/18 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
JavaScript中使用自然对数ln的方法
2015/06/14 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
Python3列表List入门知识附实例
2020/02/09 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
SQL Server面试题
2013/04/04 面试题
写好自荐信的几个要点
2013/12/26 职场文书
个人实习生的自我评价
2014/02/16 职场文书
生活小常识广播稿
2014/09/16 职场文书
家庭贫困证明
2014/09/23 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
2015年女工委工作总结
2015/07/27 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python