讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在VSCode中通过Node环境校验身份证号码等敏感格式

小宇大大_4505

小宇大大_4505

发布时间:2026-08-28 08:17:46

|

491人浏览过

|

来源于php中文网

原创

直接用 parseInt 校验身份证会出错,因其会去除前导零并因精度丢失导致18位数字误转,正确做法是全程字符串处理、用正则和校验码算法(GB 11643-1999)校验。

如何在vscode中通过node环境校验身份证号码等敏感格式

为什么直接用 parseInt 校验身份证会出错

身份证号码是 18 位字符串,开头可能是 0(如某些地区户籍号),用 parseInt 会自动去掉前导零,变成数值后还可能因精度丢失(JavaScript 安全整数上限是 Number.MAX_SAFE_INTEGER === 9007199254740991),18 位数字远超该范围,导致校验结果不可靠。

  • 错误示例:parseInt("11010119900307251X") → 110101199003072510(末尾 X 被截断,数字也被误转)
  • 正确做法:全程按字符串处理,只用正则和字符索引做逻辑判断
  • 特别注意:最后一位可能是 "X" 或 "x",需统一转大写再比对

Node 环境下校验身份证的最小可行函数

不依赖第三方库,仅用内置 API,适配 Node.js 14+ 和 VSCode 内置终端调试场景。核心是校验长度、数字格式、校验码算法(GB 11643-1999)。

function isValidID(id) {
  if (typeof id !== 'string' || !/^\d{17}[\dXx]$/.test(id)) return false;
  const wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  const vi = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
  let sum = 0;
  for (let i = 0; i < 17; i++) {
    sum += Number(id[i]) * wi[i];
  }
  return vi[sum % 11] === id[17].toUpperCase();
}
  • VSCode 中可直接粘贴到 .js 文件里,在调试控制台或 node 终端中调用测试
  • 输入 "11010119900307251X" 返回 true;"110101199003072512" 返回 false
  • 不校验出生日期合法性(如 2099 年),如需增强,可额外用 new Date() 验证年月日是否有效

在 VSCode 里快速验证的实操路径

不是写完就扔,而是让校验能即时反馈——适合开发中边写边测。

Rydberg Agent Node
Rydberg Agent Node

使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r

下载
  • 新建临时文件 id-test.js,写入上述 isValidID 函数 + 测试用例
  • 右键 → “在集成终端中运行”,或按 Ctrl+Shift+P → 输入 “Run Task” → 选 “Node.js: Run Current File”
  • 若提示 Cannot find module 'xxx',说明没激活 Node 环境:检查 VSCode 底部状态栏是否显示 Node 版本,没显示则需安装 Node 并重启 VSCode
  • 调试时可在函数内加 console.log(id, sum % 11, vi[sum % 11]) 查中间值,避免黑盒失败

敏感字段校验容易被忽略的边界点

身份证只是典型,但这类校验一旦上线就涉及合规风险,几个硬性细节必须卡死:

  • 前端校验纯属体验优化,isValidID 必须在 Node 后端重复执行,不能信任任何客户端输入
  • 日志记录时严禁打印完整身份证号,建议脱敏为 id.replace(/^(.{6})(.*)(.{4})$/, "$1****$3")
  • 如果项目用 TypeScript,给参数加类型 id: string,避免传入 null 或 undefined 导致 id[0] 报 TypeError
  • 正则 /^\d{17}[\dXx]$/ 不匹配空格或换行,粘贴文本时记得先 trim()

真正麻烦的从来不是算法本身,而是校验逻辑散落在表单、API 层、数据库触发器多个地方,最终漏掉一处就等于没校验。

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

1255

2023.06.30

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2592

2023.07.21

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1889

2024.03.14

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1707

2024.03.14

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2587

2024.03.15

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1798

2024.03.15

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1242

2024.03.15

vscode和visualstudio的区别
vscode和visualstudio的区别

Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1096

2024.03.15

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

80

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn