Aug 5, 2026阅读约 5 分钟· MariMetric Team
ISO 6346 集装箱号校验:开发者指南
集装箱号内置校验位。客户端和服务端双重校验,在提交追踪请求前捕获拼写错误。TypeScript 和 Python 代码示例。
ISO 6346Container NumberValidationTutorial
集装箱号结构
ISO 6346 标准集装箱号 11 个字符:4 个字母(承运人代码 + 类别) + 7 个数字(序列号 + 校验位)。例:MSCU1234567,MSKU 是 Maersk 承运人代码。
校验位计算原理
- 1将每个字符映射为数字值:0-9 = 0-9,A-Z(跳过 11 的倍数) = 10-38
- 2每个值乘以 2^(位置),位置从 0 开始
- 3求和
- 4对 11 取模
- 5若结果为 10,校验位为 0;否则为该结果
TypeScript 实现
function validateContainerNumber(num: string): boolean {
if (!/^[A-Z]{4}\d{7}$/.test(num)) return false;
const map: Record<string, number> = {};
"0123456789A BCDEFGHIJ".replace(/ /g, "").split("").forEach((c, i) => {
map[c] = i;
});
let sum = 0;
for (let i = 0; i < 10; i++) {
sum += (map[num[i]] ?? 0) * Math.pow(2, i);
}
const check = sum % 11;
const expected = check === 10 ? 0 : check;
return expected === parseInt(num[10], 10);
}为什么要校验?
手动输入的集装箱号最多 5% 有拼写错误。客户端即时校验节省用户时间,也避免为无效输入浪费 1-3 次承运人 API 调用。MariMetric 每次查询都自动校验,试试看。
相关文章
在船公司、港口与航线中发现更多内容。
什么是集装箱号?(BIC / ISO 6346 详解)
ISO 6346每个集装箱都有唯一的 11 位标识符。了解集装箱号结构、由谁分配,以及如何一眼读懂它。
Learn more小货代集装箱追踪:实用工作流
Forwarders一个 3 人小货代如何用 MariMetric 每月追踪 50-200 个集装箱、自动化客户更新、显得比实际更大。
Learn more如何追踪 MSC 集装箱:完整指南
MSC实时追踪任意 MSC 集装箱的逐步指南。包含 MSCU 前缀、常见状态码,以及当 MSC 官网拦截自动化访问时的应对方法。
Learn more集装箱追踪
了解集装箱追踪如何运作,跨所有主要船公司追踪货物。
Learn more