如果浏览不顺畅请到 原文章出处:https://www.sky8g.com/technology/2690/

请注意可能会提示风险,这是csdn设置网站设置的问题,请放心访问,谢谢。

本篇文章是由SKY8G网编辑,纯属原创文章禁止抄袭。更新时间是2019年6月2日。

下面我将为大家介绍Javascript是如何验证信用卡号、信用卡类型,讲到这里有的小伙伴还不知道什么是信用卡的吧,信用卡就是我们可以tiqian提前透支的一种

卡这是和存蓄卡最大的区别。下面由我给大家介绍下信用的类型。

下面是通过百度百科的解释,信用卡根据流通范围的不同,可分为国际卡地区卡

国际卡。国际卡是一种可以在发行国之外使用的信用卡,全球通用。境外五大集团(万事达卡组织、维萨国际组织、美国运通公司、JCB信用卡公司和大莱信用卡公司)分别发行的万事达卡(Master Card)、维萨卡(VISA Card)、运通卡(American Express Card)、JCB卡(JCB Card)和大莱卡(Diners Club Card)多数属于国际卡。

地区卡。地区卡是一种只能在发行国国内或一定区域内使用的信用卡。我国商业银行所发行的各类信用卡大多数属于地区卡。

我们要了解Luhn算法:

也称为「模10」Mod 10算法,是一种的效验和算法,一般用于身份证识别码,例如发卡行识别码、国际行动装置辨别码(IMEI),美国国家提供商标号码,或是加拿大社会保险号码。该算法由IBM科学家Hans Peter Luhn创建,专利于1954年1月6日申请,1960年8月23日颁发,美国专利号2950048[1]。

通过以上的介绍大家应该对信用卡有所了解了,接下面我们就利用js如何进行信用的号的验证,和js如何判断信用卡的类型的。

1

2

3

4

5

6

7

我们以数字「7992739871」为例,计算其校验位:

从校验位开始,从右往左,偶数位乘2(例如,7*2=14),然後將兩位数字的个位与十位相加(例如,10:1+0=1,14:1+4=5);

把得到的数字加在一起(本例中得到67);

將数字的和取模10(本例中得到7),再用10去減(本例中得到3),得到校验位。

原始数字 7 9 9 2 7 3 9 8 7 1 x

偶数位乘2 7 18 9 4 7 6 9 16 7 2 x

將数字相加 7 9 9 4 7 6 9 7 7 2 =67

通过以上的阅读相信你已经掌握了Luhn的算法,接下来我将展示给大家如何验证信用的JavaScript代码。

验证信用的类型代码如下: 

如果浏览不顺畅请到 原文章出处:https://www.sky8g.com/technology/2690/

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

/**

* 创建信用卡类型的Javascript对象

* 0 - regexp for card number

* 1 - regexp for cvn

* 2 - 通过Luhn算法检查信用卡号码是否正确

*/

creditCartTypes = {

'SO': [

new RegExp('^(6334[5-9]([0-9]{11}|[0-9]{13,14}))|(6767([0-9]{12}|[0-9]{14,15}))$'),

new RegExp('^([0-9]{3}|[0-9]{4})?$'),

true

],

'SM': [

new RegExp('(^(5[0678])[0-9]{11,18}$)|(^(6[^05])[0-9]{11,18}$)|' +

'(^(601)[^1][0-9]{9,16}$)|(^(6011)[0-9]{9,11}$)|(^(6011)[0-9]{13,16}$)|' +

'(^(65)[0-9]{11,13}$)|(^(65)[0-9]{15,18}$)|(^(49030)[2-9]([0-9]{10}$|[0-9]{12,13}$))|' +

'(^(49033)[5-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49110)[1-2]([0-9]{10}$|[0-9]{12,13}$))|' +

'(^(49117)[4-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49118)[0-2]([0-9]{10}$|[0-9]{12,13}$))|' +

'(^(4936)([0-9]{12}$|[0-9]{14,15}$))'), new RegExp('^([0-9]{3}|[0-9]{4})?$'),

true

],

'VI': [new RegExp('^4[0-9]{12}([0-9]{3})?$'), new RegExp('^[0-9]{3}$'), true],

'MC': [

new RegExp('^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$'),

new RegExp('^[0-9]{3}$'),

true

],

'AE': [new RegExp('^3[47][0-9]{13}$'), new RegExp('^[0-9]{4}$'), true],

'DI': [new RegExp('^(6011(0|[2-4]|74|7[7-9]|8[6-9]|9)|6(4[4-9]|5))\\d*$'), new RegExp('^[0-9]{3}$'), true],

'JCB': [new RegExp('^35(2[8-9]|[3-8])\\d*$'), new RegExp('^[0-9]{3}$'), true],

'DN': [new RegExp('^(3(0[0-5]|095|6|[8-9]))\\d*$'), new RegExp('^[0-9]{3}$'), true],

'UN': [

new RegExp('^(622(1(2[6-9]|[3-9])|[3-8]|9([[0-1]|2[0-5]))|62[4-6]|628([2-8]))\\d*?$'),

new RegExp('^[0-9]{3}$'),

true

],

'MI': [new RegExp('^(5(0|[6-9])|63|67(?!59|6770|6774))\\d*$'), new RegExp('^[0-9]{3}$'), true],

'MD': [new RegExp('^6759(?!24|38|40|6[3-9]|70|76)|676770|676774\\d*$'), new RegExp('^[0-9]{3}$'), true]

};

调用方法:

1

creditCartTypes['VI'][0].test('4111111111111111');

输出:

1

true

true表示是信用卡。

使用mod10验证信用卡号码代码:

如果浏览不顺畅请到 原文章出处:https://www.sky8g.com/technology/2690/

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

function validateCreditCard(s) {

// remove non-numerics

var v = '0123456789',

w = '',

i, j, k, m, c, a, x;

for (i = 0; i < s.length; i++) {

x = s.charAt(i);

if (v.indexOf(x, 0) !== -1) {

w += x;

}

}

// validate number

j = w.length / 2;

k = Math.floor(j);

m = Math.ceil(j) - k;

c = 0;

for (i = 0; i < k; i++) {

a = w.charAt(i * 2 + m) * 2;

c += a > 9 ? Math.floor(a / 10 + a % 10) : a;

}

for (i = 0; i < k + m; i++) {

c += w.charAt(i * 2 + 1 - m) * 1;

}

return c % 10 === 0;

}

调用:

1

2

validateCreditCard('4111111111111111');

validateCreditCard('432323908888');

输出:

1

2

true

false

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

Javascript验证信用卡号、信用卡类型(最全最新)相关推荐

  1. javascript验证是否是数字类型

    正则校验: var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字,//若判断正整数,则后边是:/^[1-9]+[0-9]*]*$/ if(re.test(value) = ...

  2. c语言信用卡号验证,Javascript验证Visa和MasterCard信用卡号的方法

    本文实例讲述了Javascript验证Visa和MasterCard信用卡号的方法.分享给大家供大家参考.具体实现方法如下: visa验证: Visa Example function luhnChe ...

  3. javascript验证_使用JavaScript验证信用卡

    javascript验证 We all know that JavaScript shouldn't be a web form's only method of validation but cli ...

  4. Java黑皮书课后题第6章:**6.31(金融应用:信用卡号的合法性验证)和**6.32 编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的

    6.31(金融应用:信用卡号的合法性验证)编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的 6.31题目 题目描述 破题 6.31代码 6.32 代码 运行实例 6 ...

  5. 第十届 蓝桥杯样题 —— 信用卡号验证

    [编程大题]信用卡号验证 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过. 该校验的过程: 1 ...

  6. 信用卡号校验java_ES reduce 一行代码解决信用卡号验证问题

    背景 女票 JAVA 课程有一道作业题,验证信用卡号是否合法. 实验作业longer 9月30号 星期五 12:09 实验1:验证信用卡号码 Lab Project: Validating Credi ...

  7. 金融应用:信用卡号的合法性验证

    信用卡号遵循某种模式.一个信用卡号必须是13到16位的整数.它的开头必须是: 4,指Visa卡 5,指Master卡 37,指American Express 卡 6,指Discover卡 1954年 ...

  8. luhn算法 java_java – 使用luhn算法验证信用卡号

    我对以下编程任务有疑问. 信用卡号码遵循某些模式.信用卡必须在13到16位之间.它必须从: •4张Visa卡 •5张万事达卡 •美国运通卡37张 1954年,IBM的Hans Luhn提出了一种验证信 ...

  9. Python:打印日历,验证信用卡号是否合法

    Python语言基础-2.5函数基础(理) 第5关:函数综合实训-打印日历 本关任务:利用函数的知识完成如下习题: 1.编写判断信用卡号是否合法的判断程序. 2.编写函数模块,打印日历程序 第1题 信 ...

最新文章

  1. GET 和 POST请求的本质区别是什么?原来我一直理解错了
  2. 深入理解分布式技术 - 服务注册与发现背后的逻辑
  3. java基础提升篇:深入剖析Java中的装箱和拆箱
  4. mysql 将三个月的数据导到历史表_迁移数据到历史表,减少业务表中数据压力 Mysql...
  5. 单目视觉里程计的尺度问题的疑问?
  6. C语言-----职工信息管理系统
  7. matlab建立遗传算法,Matlab遗传算法(一)
  8. 【知识点】patch补丁文件格式
  9. ESP8266-Arduino编程实例-L3GD20三轴角速率传感器驱动
  10. word文档打对勾_word文档怎么打勾 word文档方框内打勾六种方法介绍
  11. win11 即将来临 —— 你真的会管理你的Windows 10吗?
  12. 2021年吹过的牛都实现了吗?2022年你又期待遇见怎样的自己?
  13. 数据仓库之内容建设(架构、分层、主数据、指标体系、词根、血缘)
  14. gta5结局杀老崔我哭了_GTA5:每个主角都在故事里得到了自己想要的东西,但崔佛却是白给...
  15. 基于Ace的Markdown编辑器
  16. 浅谈EditorConfig、Prettier以及Eslint的使用
  17. 【20210903】【实践分享】架构师岗位的一次面试
  18. 使用webpack脚手架创建一个vue项目
  19. 如何通过X1使电脑上网
  20. Leetcode.1079 活字印刷

热门文章

  1. iOS9.3.5越狱图文教程
  2. 使用微信web开发者工具调试微信企业号页面
  3. 联想lenovo进bios
  4. mysql去掉两个最高分_excel去掉两个(多个)最低分、最高分,求总(平均)分...
  5. VMware安装优麒麟20.04LTS
  6. BC35 RAI功能应用
  7. SpringBoot+JPA 项目启动失败,无法扫描到Repository
  8. Connection接口
  9. 人工智能数学基础---定积分4:使用换元法计算定积分
  10. python bind绑定失败_Python tkinter之Bind(绑定事件)的使用示例