js 生成随机13位国际条码 支持获取校验位
封面图
•
2025-12-15
•
JavaScript
243
0
0
0
在 JavaScript 中生成一个符合 **EAN-13**(国际条码)的 13 位数字,并且支持计算 **校验位**,可以按照以下步骤实现: --- ## ✅ EAN-13 条码规则 - 总共 13 位数字。 - 前 12 位是数据位,最后一位是 **校验位**。 - 校验位的计算方法如下: - 对第 1、3、5、7、9、11 位(奇数位)求和 → `sumOdd` - 对第 2、4、6、8、10、12 位(偶数位)求和 → `sumEven` - 总和 = `sumOdd + sumEven * 3` - 校验位 = `(10 - (总和 % 10)) % 10` --- ## 🧩 JavaScript 实现代码 ```javascript function generateEAN13() { // 生成前12位随机数字 let prefix = '500'; // 可选:你可以替换为特定前缀(如国家代码) let randomPart = ''; for (let i = 0; i < 9; i++) { randomPart += Math.floor(Math.random() * 10); } let data = prefix + randomPart; // 计算校验位 let checkDigit = calculateCheckDigit(data); return data + checkDigit; } function calculateCheckDigit(data) { let sumOdd = 0; let sumEven = 0; for (let i = 0; i < data.length; i++) { let digit = parseInt(data[i], 10); if ((i + 1) % 2 === 1) { // 奇数位(从1开始计数) sumOdd += digit; } else { // 偶數位 sumEven += digit; } } let total = sumOdd + sumEven * 3; let checkDigit = (10 - (total % 10)) % 10; return checkDigit; } // 示例使用 const ean13 = generateEAN13(); console.log('Generated EAN-13:', ean13); ``` --- ## 🔍 示例输出 ``` Generated EAN-13: 5001234567890 ``` > 注意:`prefix` 是可选的。如果你希望生成完整的合法 EAN-13,建议使用有效的前缀(如 `500` 表示英国),否则生成的条码可能无法被扫描设备识别。 --- ## 📌 说明 - 如果你需要生成一个“合法”的 EAN-13 条码(用于实际产品),建议使用已分配的前缀(如由 GS1 分配的前缀)。 - 本代码仅用于学习或测试目的。 --- 需要我帮你生成一个带有指定前缀的 EAN-13 吗?欢迎继续提问!
上一篇:
对json数据格式的理解?
下一篇:
js实现点击按钮后变灰不可再点并进入倒计时
标题录入,一次不能超过6条
留言
评论