我的第一个校验js

博客提及进行了简单的JS校验,并希望大家给出好的建议,聚焦于信息技术领域的JS校验方面。
很简单的js校验,希望大家能给我好建议。
当然可以!以下是一个完整的 **前端 JavaScript 函数**,用于校验统一社会信用代码(18位)的格式和校验码,符合国家标准 GB 32100-2015。 --- ### ✅ 前端 JS 校验统一信用代码方法 ```javascript /** * 校验统一社会信用代码(18位) * @param {string} code - 待校验的信用代码 * @returns {boolean} 是否有效 */ function validateUSCC(code) { // 基本格式校验:18位,前17位为数字或大写字母,最后一位为数字或X const regex = /^[0-9A-Z]{17}[0-9X]$/; if (!regex.test(code)) { return false; } // 加权因子(固定) const weights = [1, 3, 9, 27, 19, 26, 16, 17, 19, 26, 16, 17, 19, 26, 16, 17, 19]; // 字符转数值函数 function charToInt(c) { return /\d/.test(c) ? parseInt(c, 10) : c.charCodeAt(0) - 'A'.charCodeAt(0) + 10; } // 计算加权和 let sum = 0; for (let i = 0; i < 17; i++) { const value = charToInt(code[i]); sum += value * weights[i]; } // 计算模11结果,查表得校验码 const remainder = sum % 11; const checkMap = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; const expectedCheckCode = checkMap[remainder]; // 比较第18位是否等于期望的校验码 return code[17] === expectedCheckCode; } // 使用示例: console.log(validateUSCC("91110108558546378M")); // true 或 false(根据实际值) console.log(validateUSCC("123456789ABCDEFGHX")); // false(测试无效) ``` --- ### 📌 使用说明: - ✅ 支持浏览器环境(无需依赖) - ✅ 包含格式校验 + 算法校验 - ✅ 正确处理 `X` 作为校验码的情况 - ✅ 严格区分大小写:输入应为大写(建议前端自动转换) --- ### 💡 建议使用前先转大写: ```javascript const input = "91110108558546378m".toUpperCase(); console.log(validateUSCC(input)); // 避免小写导致失败 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值