是否有任何已知的正则表达式来验证信用卡轨道 1 和轨道 2 数据?
编辑:
来自维基百科:
金融卡上第 1 轨的信息包含在几种格式中:A,保留供发卡机构专有使用,B,如下所述,CM,保留供 ANSI 小组委员会 X3B10 和 NZ 使用,它们是可供个别发卡机构使用:
音轨 1,格式 B:
- 开始哨兵——一个字符(通常是'%')
- Format code="B" — 一个字符(仅限字母)
- 主帐号 (PAN) — 最多 19 个字符。通常,但并非总是如此,与印在卡正面的信用卡号相匹配。
- 字段分隔符 - 一个字符(通常为 '^')
- 名称 — 2 到 26 个字符
- 字段分隔符 - 一个字符(通常为 '^')
- 到期日期 — YYMM 格式的四个字符。
- 服务代码——三个字符
- 任意数据 — 可能包括密码验证密钥指示符(PVKI,1 个字符)、密码验证值(PVV,4 个字符)、卡验证值或卡验证码(CVV 或 CVK,3 个字符)
- End sentinel - 一个字符(通常是“?”)
- 纵向冗余校验 (LRC) — 它是一个字符和一个有效字符,由轨道上的其他数据计算得出。需要注意的是,大部分读卡器设备在刷卡到表现层时并不会返回这个值,只是用来验证读卡器内部的输入。
Track 2:这种格式是由银行业 (ABA) 开发的。该磁道采用 5 位方案(4 个数据位 + 1 个奇偶校验位)写入,它允许 16 个可能的字符,即数字 0-9,加上六个字符:< = > ? . 六个标点符号的选择可能看起来很奇怪,但实际上这十六个代码只是映射到 ASCII 范围 0x30 到 0x3f,它定义了十位数字字符加上这六个符号。数据格式如下:
- 开始哨兵——一个字符(通常是';')
- 主帐号 (PAN) — 最多 19 个字符。通常,但并非总是如此,与印在卡正面的信用卡号相匹配。
- 分隔符 - 一个字符(通常为 '=')
- 到期日期 — YYMM 格式的四个字符。
- 服务代码——三个字符
- 自由裁量数据——如第一轨
- End sentinel - 一个字符(通常是“?”)
- 纵向冗余校验 (LRC) — 它是一个字符和一个有效字符,由轨道上的其他数据计算得出。需要注意的是,大部分读卡器设备在刷卡到表现层时并不会返回这个值,只是用来验证读卡器内部的输入。