JavaScript隨機(jī)生成信用卡卡號的方法
本文實(shí)例講述了JavaScript隨機(jī)生成信用卡卡號的方法。分享給大家供大家參考。具體分析如下:
這段JS代碼根據(jù)信用卡卡號產(chǎn)生規(guī)則隨機(jī)生成信用卡卡號,是可以通過驗(yàn)證的,僅供學(xué)習(xí)參考,請不要用于非法用途,否則后果自負(fù)。
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;
}
調(diào)用方法:
將上面的代碼保存為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程序設(shè)計(jì)有所幫助。
- 解決javascript 全局變量失效的問題
- JS代碼隨機(jī)生成姓名、手機(jī)號、身份證號、銀行卡號
- 用JS實(shí)現(xiàn)根據(jù)當(dāng)前時(shí)間隨機(jī)生成流水號或者訂單號
- 利用javascript如何隨機(jī)生成一定位數(shù)的密碼
- js隨機(jī)生成一個(gè)驗(yàn)證碼
- js隨機(jī)生成26個(gè)大小寫字母
- JS隨機(jī)生成不重復(fù)數(shù)據(jù)的實(shí)例方法
- js jquery獲取隨機(jī)生成id的服務(wù)器控件的三種方法
- JS實(shí)現(xiàn)隨機(jī)生成10個(gè)手機(jī)號的方法示例
相關(guān)文章
基于layer.js實(shí)現(xiàn)收貨地址彈框選擇然后返回相應(yīng)的地址信息
這篇文章主要介紹了基于layer.js實(shí)現(xiàn)收貨地址彈框選擇然后返回相應(yīng)的地址信息,需要的朋友可以參考下2017-05-05
JS字符串轉(zhuǎn)GBK編碼超精簡實(shí)現(xiàn)詳解
JS中GBK編碼轉(zhuǎn)字符串是非常簡單的,但反過來,字符串轉(zhuǎn)GBK編碼卻沒這么簡單。接下來本文就將帶大家一起康康JS如何實(shí)現(xiàn)字符串轉(zhuǎn)GBK編碼,需要的可以參考一下2022-08-08
javascript調(diào)試過程中找不到哪里出錯的可能原因
本文為大家講解下在寫javascript時(shí)找不到哪里出錯的可能原因,遇到的朋友可以參考下2013-12-12
js原生跨域_用script標(biāo)簽的簡單實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猨s原生跨域_用script標(biāo)簽的簡單實(shí)現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09
如何實(shí)現(xiàn)移動端瀏覽器不顯示 pc 端的廣告
隨著移動網(wǎng)絡(luò)的發(fā)展,越來越多的人使用手機(jī)等移動端瀏覽網(wǎng)頁辦公,那么如果在手機(jī)打開頁面的時(shí)候顯示大大的聯(lián)盟廣告,用戶體驗(yàn)度會非常差,經(jīng)過一番研究,用下面的方法實(shí)現(xiàn)了移動端瀏覽器不顯示PC端廣告。2015-10-10
前端頁面適配之postcss-px-to-viewport實(shí)現(xiàn)步驟
postcss-px-to-viewport是一個(gè)PostCSS插件,它可以將px單位轉(zhuǎn)換為視口單位(vw、vh?或?vmin),這篇文章主要給大家介紹了關(guān)于前端頁面適配之postcss-px-to-viewport的實(shí)現(xiàn)步驟,需要的朋友可以參考下2024-03-03
js動態(tài)獲取子復(fù)選項(xiàng)并設(shè)計(jì)全選及提交的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨s動態(tài)獲取子復(fù)選項(xiàng)并設(shè)計(jì)全選及提交的實(shí)現(xiàn)方法。小編覺得挺不錯的, 現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06

