luhn
校验位正确(Luhn 算法)的银行卡号,12–19 位。
签名
ts
function luhn(msg?: Message): Action<string>
function isLuhn(value: string): boolean参数
| 参数 | 类型 | 说明 |
|---|---|---|
msg | Message | 自定义错误信息 |
错误代码
| 代码 | 触发条件 | 默认信息 |
|---|---|---|
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