zoukankan      html  css  js  c++  java
  • 银行卡信息生成

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>银行卡 | 身份证 | 生成</title>
        <script>
            //获取银行卡号不包括LunmCode
            function getBankCardWithoutLunmCode(bank_no) {
                // bank_no 银行代码
                //控制位数. 19位的银行卡 cardinalNumber=12. 16位的银行卡 cardinalNumber=9
                var cardinalNumber = 12;
                var prefix = "";
                switch (bank_no) {
                    case "102":
                        prefix = "622202";
                        break;
                    case "103":
                        prefix = "622848";
                        break;
                    case "105":
                        prefix = "622700";
                        break;
                    case "301":
                        prefix = "622262";
                        break;
                    case "104":
                        prefix = "621661";
                        break;
                    case "303":
                        prefix = "622666";
                        cardinalNumber = 9;
                        break;
                    case "305":
                        prefix = "622622";
                        break;
                    case "306":
                        prefix = "622556";
                        break;
                    case "308":
                        prefix = "622588";
                        cardinalNumber = 9;
                        break;
                    case "410":
                        prefix = "622155";
                        break;
                    case "302":
                        prefix = "622689";
                        break;
                    case "304":
                        prefix = "622630";
                        break;
                    case "309":
                        prefix = "622908";
                        break;
                    case "310":
                        prefix = "621717";
                        break;
                    case "315":
                        prefix = "622323";
                        break;
                    case "316":
                        prefix = "622309";
                        break;
                    default:
                        return '';
                }
    
                //生成不包括Luhm校验码的银行卡号
                var bankCardWithoutLunmCode = prefix;
                for (var j = 0; j < cardinalNumber; j++) {
                    bankCardWithoutLunmCode += Math.floor(Math.random() * 10);
                }
    
                console.log(prefix);
                console.log(bankCardWithoutLunmCode);
    
                return bankCardWithoutLunmCode;
            }
    
    
            // 获取Luhn Code
            function getLuhnCode(bankCardWithoutLunmCode) {
                if (bankCardWithoutLunmCode == '') return '';
                var no = bankCardWithoutLunmCode.split('').reverse().join('');
    
                // 定义奇数/偶数数据
                var addArr = new Array();
                var evenArr = new Array();
    
                // 奇数/偶数数组分开
                for (var i = 0; i < no.length; i++) {
                    if (i % 2 == 0) {
                        addArr[i / 2] = no[i];
                    } else {
                        evenArr[(i - 1) / 2] = no[i];
                    }
                }
    
                //奇数数组内容x2
                // 如果乘以2得到的数字是两位,把这两位相加得到一位数字.
                // 如果相加后的内容时两位数,减去9.
                for (var i = 0; i < addArr.length; i++) {
                    var temp = parseInt(addArr[i]) * 2;
                    if (temp > 9) {
                        temp = parseInt(String(temp).charAt(0)) + parseInt(String(temp).charAt(1));
                        if (temp > 9) {
                            temp = temp - 9;
                        }
                    }
                    addArr[i] = temp;
                }
    
    
                //两个数组合并
                var arr = addArr.concat(evenArr);
                var oddEvenCount = 0;
    
                for (var i = 0; i < arr.length; i++) {
                    oddEvenCount += parseInt(arr[i]);
                }
    
                console.log(oddEvenCount);
    
                //生成Lnhn code
    
                var LuhnCode = oddEvenCount % 10 == 0 ? 0 : (10 - oddEvenCount % 10);
    
                console.log(LuhnCode);
    
                return LuhnCode;
    
            }
    
            function getBankCard(bank_no) {
                var bankCardWithoutLunmCode = getBankCardWithoutLunmCode(bank_no);
                var bankCard = bankCardWithoutLunmCode + getLuhnCode(bankCardWithoutLunmCode) + "";
    
                console.log("银行卡号:", bankCard);
    
                return bankCard;
    
            }
            // 随机生成姓名
            function getName() {
                var familyNames = new Array(
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "", "", "", ""
                );
                var givenNames = new Array(
                    "子璇", "", "国栋", "夫子", "瑞堂", "", "", "", "国贤", "贺祥", "晨涛",
                    "昊轩", "易轩", "益辰", "益帆", "益冉", "瑾春", "瑾昆", "春齐", "", "文昊",
                    "东东", "雄霖", "浩晨", "熙涵", "溶溶", "冰枫", "欣欣", "宜豪", "欣慧", "建政",
                    "美欣", "淑慧", "文轩", "文杰", "欣源", "忠林", "榕润", "欣汝", "慧嘉", "新建",
                    "建林", "亦菲", "", "冰洁", "佳欣", "涵涵", "禹辰", "淳美", "泽惠", "伟洋",
                    "涵越", "润丽", "", "淑华", "晶莹", "凌晶", "苒溪", "雨涵", "嘉怡", "佳毅",
                    "子辰", "佳琪", "紫轩", "瑞辰", "昕蕊", "", "明远", "欣宜", "泽远", "欣怡",
                    "佳怡", "佳惠", "晨茜", "晨璐", "运昊", "汝鑫", "淑君", "晶滢", "润莎", "榕汕",
                    "佳钰", "佳玉", "晓庆", "一鸣", "语晨", "添池", "添昊", "雨泽", "雅晗", "雅涵",
                    "清妍", "诗悦", "嘉乐", "晨涵", "天赫", "玥傲", "佳昊", "天昊", "萌萌", "若萌"
                );
                var i = parseInt(Math.random() * 100);
                var familyName = familyNames[i];
                var j = parseInt(Math.random() * 100);
                var givenName = givenNames[i];
                var name = familyName + givenName;
                console.log("姓名", name);
                return name;
            }
            // 生成随机身份证号
            function getId_no() {
                var coefficientArray = ["7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"]; // 加权因子
                var lastNumberArray = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"]; // 校验码
                var address = "420101"; // 住址
                var birthday = "19810101"; // 生日
                var s = Math.floor(Math.random() * 10).toString() + Math.floor(Math.random() * 10).toString() + Math.floor(Math.random() * 10).toString();
                var array = (address + birthday + s).split("");
                var total = 0;
                for (i in array) {
                    total = total + parseInt(array[i]) * parseInt(coefficientArray[i]);
                }
                var lastNumber = lastNumberArray[parseInt(total % 11)];
                var id_no_String = address + birthday + s + lastNumber;
                console.log("身份证", id_no_String);
                return id_no_String;
            }
            window.onload = function() {
                // 获取select的选中项
                var checkedBankNo = document.getElementsByName("bank_no")[0].value;
                // 获取生成卡号的按钮
                var generateBankcard = document.getElementById("generateBankcard");
                generateBankcard.onclick = function() {
                    // 获取卡号文本框
                    var bankcard = document.getElementById("bankcard");
                    // 获取select的选中项
                    var checkedBankNo = document.getElementsByName("bank_no")[0].value;
                    bankcard.value = getBankCard(checkedBankNo);
                }
    
                // 生成身份证号码
                var generateIdentity = document.getElementById("generateIdentity");
    
                generateIdentity.onclick = function() {
                    var identity = document.getElementById("identity");
                    identity.value = getId_no();
                }
    
                // 生成随机姓名
                var generateName = document.getElementById("generateName");
    
                generateName.onclick = function() {
                    var name = document.getElementById("name");
                    name.value = getName();
                }
    
            }
        </script>
    </head>
    
    <body>
        <div id="bankInfo">
            <p>
                <span>选择银行</span>
                <select name="bank_no" id="">
                    <option value="104">中国银行</option>
                    <option value="103">农业银行</option>
                    <option value="102">工商银行</option>
                    <option value="105">建设银行</option>
                    <option value="301">交通银行</option>
                    <option value="100">中国邮政储蓄银行</option>
                    <option value="308">招商银行</option>
                    <option value="310">浦发银行</option>
                    <option value="309">兴业银行</option>
                    <option value="303">光大银行</option>
                    <option value="306">广发银行</option>
                    <!-- <option value="308">平安银行</option> -->
                    <option value="304">华夏银行</option>
                    <option value="305">民生银行</option>
                    <option value="302">中信银行</option>
                    <!-- <option value="308">上海银行</option> -->
                    <!-- <option value="308">鄂尔多斯银行</option> -->
                </select>
                <input id="generateBankcard" type="button" value="生成卡号">
                <input id="bankcard" type="text" placeholder="银行卡号">
            </p>
        </div>
        <div id="identityInfo">
            <p>
                <span>身份证号码</span>
                <input id="generateIdentity" type="button" value="生成身份证号码">
                <input id="identity" type="text" placeholder="随机身份证号码..">
            </p>
        </div>
        <div id="nameInfo">
            <p>
                <span>名字</span>
                <input id="generateName" type="button" value="生成名字">
                <input id="name" type="text" placeholder="随机姓名..">
            </p>
        </div>
    </body>
    
    </html>
  • 相关阅读:
    Atitit 计算机的组成与设计 目录 1. 计算机系统是由硬件系统和软件系统两大部分组成。  1 1.1. Cpu(alu+cu ) 1 1.2. 存储内存 外村 1 1.3. Io设备 鼠标
    atitit 软件框架类库设计的艺术.docx 目录 1. index 1 2. 第2章 设计api的动力之源 14 2 2.1. .1 分布式开发 14 2 2.2. 2.2 模块化应用程序 16
    Atitit 信息检索 之音乐检索实践 艾提拉注 目录 1. 常规检索 歌手 歌名 1 1.1. 年代检索 1 1.2. 歌词检索(可以依靠web 1 1.3. 哼唱检索 原曲检索(可以使用酷
    Atitit 信息检索 文档资料的查询与检索 目录 1. 索引法 1 1.1. 名字placeholder索引 1 1.2. 文本txt索引 1 1.3. 索引集合包zip 1 1.4. 文件名
    Atitit 微服务实践 艾提拉著 微服务主要解决几个问题负载均很 目录 1. 微服务的模式 http请求层 vs服务层 1 1.1. Http vs 服务层优缺点 1 2. 实现技术 2
    Atitit SpringCloud 使用总结 目录 1.1. 启动一个服务注册中心EurekaServer 1 1.2. 三、创建一个服务提供者 (eureka client) 2 1.3. 创建
    Atitit 文档资料处理重要类库与工具 跨语言api和第三方api跨语言 类库工具 大概功能 功能 Curl httpclient 文件上传下载 数据传输rest doctotext.exe
    Atitit 网盘使用法 艾提拉著 目录 1. 需要解决几个问题 2 1.1. 多关键词搜索的问题 使用every索引解决 2 1.2. 重要文具类索引使用分类索引 日志 crm类增加000前缀
    Atitit 信息化数据采集与分析解析 技术 处理技术 爬虫与http rest json xml h5解析 db数据库 mail协议与处理 数据压缩与解压 数据处理 文本处理
    Atitit mis 管理信息系统概论 艾提拉著 目录 1. 互联网三大定律 2 1.1. 摩尔定律和 2 1.2. 吉尔德定律 电脑及网络宽带资源成为重要免费资源 2 1.3. 梅特卡夫定律 用户
  • 原文地址:https://www.cnblogs.com/vscss/p/8608230.html
Copyright © 2011-2022 走看看