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 相关文章推荐
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
Mar 16 Javascript
javascript实现简单的页面右下角提示信息框
Jul 31 Javascript
分享两段简单的JS代码防止SQL注入
Apr 12 Javascript
jquery按回车键实现表单提交的简单实例
May 25 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
Apr 25 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
基于bootstrap页面渲染的问题解决方法
Aug 09 Javascript
React key值的作用和使用详解
Aug 23 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
Jun 01 Javascript
JavaScript实现队列结构过程
Dec 06 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中的use关键字及文件的加载详解
2016/11/28 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python 文件和输入输出小结
2013/10/09 Python
详解Django框架中的视图级缓存
2015/07/23 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python自定义线程池实现方法分析
2018/02/07 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Python安装whl文件过程图解
2020/02/18 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
Django中的AutoField字段使用
2020/05/18 Python
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
技术总监岗位职责
2013/12/05 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
创业计划书如何编写
2014/02/06 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android