Skip to content

luhn ​

校验位正确(Luhn 算法)的银行卡号,12–19 位。

签名 ​

ts
function luhn(msg?: Message): Action<string>
function isLuhn(value: string): boolean

参数 ​

参数类型说明
msgMessage自定义错误信息

错误代码 ​

代码触发条件默认信息
luhn校验位或格式错误Invalid card number

可以修改这些文本:见 错误信息与国际化。

注意事项 ​

可以发现输入错误和随意的数字。不检查有效期、卡是否存在以及卡组织 —— 卡组织可以用 tinyval-mask 的 cardBrand 判断。

  • 允许空格和短横线:可以直接校验带掩码的值。
  • 也可以单独使用 isLuhn 函数 —— 无需 Schema 即可检查。
  • 可以使用 tinyval-mask 的掩码格式化输入。

示例 ​

ts
const Payment = object({ card: pipe(string(), luhn()) });

isLuhn('4111 1111 1111 1111'); // true

另请参阅 ​