银行卡号校验规则
昨天写了身份证编号的校验规则,今天顺便写下银行卡的校验规则。
常见的输入类信息都有校验规则,方便检查用户输入,银行卡号码也不例外,也特别需要,毕竟是一长串无规则数字,记忆和输入难免出错。
银行卡号码的校验采用Luhn算法
校验过程大致如下:
从右到左给卡号字符串编号,最右边第一位是1,最右边第二位是2,最右边第三位是3….
从右向左遍历,对每一位字符t执行第三个步骤,并将每一位的计算结果相加得到一个数s。
对每一位的计算规则:如果这一位是奇数位,则返回t本身,如果是偶数位,则先将t乘以2得到一个数n,如果n是一位数(小于10),直接返回n,否则将n的个位数和十位数相加返回。
如果s能够整除10,则此号码有效,否则号码无效。
因为最终的结果会对10取余来判断是否能够整除10,所以又叫做模10算法。
javascript代码实现如下
1 |
|