js 随机生成信用卡号
本文实例讲述了JavaScript随机生成信用卡卡号的方法。分享给大家供大家参考。具体分析如下:
这段JS代码根据信用卡卡号产生规则随机生成信用卡卡号,是可以通过验证的,仅供学习参考,请不要用于非法用途,否则后果自负。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
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文件
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<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程序设计有所帮助。
js 随机生成信用卡号的更多相关文章
- JS随机生成不重复数据的代码分享
JS随机生成不重复数据. 代码如下: <script> // 定义存放生成随机数的数组 var array=new Array(); // 循环N次生成随机数 for(var i = 0 ...
- js 随机生成姓名、手机号、身份证号、银行卡号
开发测试的时候,经常需要填写姓名.手机号.身份证号.银行卡号,既要符合格式要求.又不能重复.大家会到网上搜各种生成器.能不能自己写一个简单的生成器呢.下面是随机生成姓名.手机号.身份证号.银行卡号的j ...
- js随机生成验证码及其颜色
今天迎来了2018年第一场雪,这个美好的日子,总的写点什么纪念一下,在这里写了一个在js中使用Math.random()函数,随机生成四位数的验证码及其验证码换颜色. js代码如下: var arra ...
- js随机生成验证码以及随机颜色
Javascript通过Math.random()随机生成验证码. 代码如下: <!DOCTYPE html><html> <head> <meta char ...
- js随机生成N位数
function RondomPass(number){ var arr = new Array; "); ;i<number;i++){ ); arr[i] =arr1[n] ; / ...
- js随机生成一个数组中的随机字符串以及更新验证码
随机生成m,n范围的值得公式: Math.random()*(n-m)+m: 改正公式:Math.random()*(n+1-m)+m // 生成随机字符串function randomMixed(n ...
- js随机生成[n,m)的数字(不包括m)
Math.random();//随机生成0到1的数字 Math.floor();//取小整 Math.floor(Math.random()*(最大值 - 最小值) + 最小值) 生成2到8的数:Ma ...
- js随机生成字母数字组合的字符串 随机动画数字
效果描述: 附件中只有一个index.html文件有效 其中包含css以及html两部分内容 纯js生成的几个随机数字 每次都不重复,点击按钮后再次切换 使用方法: 1.将css样式引入到你的网页中 ...
- JS随机生成100个DIV每10个换行(换色,生成V字和倒V)
附图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...
随机推荐
- Unity引擎的Player Settings介绍
我用的是unity5.4.3版本的 一.窗口打开: 从菜单栏查看播放器设置,选择 Edit->Project Settings->Player 二.全局设置 第一部分: Company N ...
- mysql 导入数据库时,报错1840的解决方法
1.现象 在mysql用sql文件导入数据库时,提示ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @ ...
- 启动MyEclipse 出现java.lang.RuntimeException: No application id has been found 解决办法
咋一看,太熟悉了,就去eclipse\links 目录下,发现指定的MyEclipse的路径不对. 突然想起来了,MyEclipse是换地了. MyEclipse里面内置的eclipse找不到MyEc ...
- ★Java-----记事本编译、运行时注意事项
1.文件名需要与源代码中公共类的名字相同,即class后面的名字: 2.Java中严格区分大小写: 3.记事本编辑好之后保存文件后缀必须是". java": 4.运行cmd,dos ...
- POJ 3041 - 最大二分匹配
这道题实现起来还是比较简单的,但是理解起来可能有点困难. 我最开始想到的是贪心法,每次消灭当前小行星最多的一行或一列.然而WA了.Discuss区里已经有高人给出反例. 下面给出正确的解法 我们把行和 ...
- Matlab移植到Eigen用到的词条
同型矩阵运算满足加法交换律.结合律:并存在单位元.逆元.和0元,为同型矩阵对加法的交换环. Eigen的简单运算参考:http://blog.163.com/jiaqiang_wang/blog/st ...
- 团体程序设计天梯赛-练习集-L1-034. 点赞
L1-034. 点赞 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持 ...
- 【ubuntu子系统】使用windows自带的ubuntu子系统
在windows10系统中,自带了一款ubuntu子系统,就像是一个应用程序,一款软件,提供ubutnu的terminal窗口,可以使用对应的命令行模式.最重要的是,可以直接用来连接linux服务 ...
- 使用canvas截图网页为图片并解决跨域空白以及模糊问题
前几天给了个需求对浏览器网页进行截图,把网页统计数据图形表等截图保存至用户本地. 首先对于网页截图,我用的是canvas实现,获取你需要截图的模块的div,从而使用canvas对你需要的模块进行截图. ...
- vue+ElementUI 日期选择器 获取时间戳
<div class="block"> <span class="demonstration">daterange</span&g ...