应使用正则限定上下文匹配真实敏感词:用\b密码\b匹配独立中文词,先用^\s//.密码.*$筛查注释行并人工跳过,字符串字面量需结合编辑器特性或人工确认,避免误删变量名或路径。

直接删或模糊化敏感词,不能靠 Ctrl+H 盲替——必须结合正则、排除规则和人工确认,否则容易误伤字符串、注释或路径。
怎么用正则匹配真实敏感词,避开字符串和注释
敏感词如果写死在代码里(比如 "密码"、// 用户密码),直接搜“密码”会把变量名 userPassword、路径 /api/password/reset 全干掉。得用正则限定上下文:
- 只匹配独立中文词:用
\b密码\b(需勾选“全字匹配”图标ab) - 排除注释行:不推荐单靠正则过滤,更稳的是先用
^\s*//.*密码.*$单独查一遍注释,手动跳过 - 排除字符串字面量:VS Code 正则不支持负向先行断言(如
(?),所以别指望一条正则完美隔离——得靠“范围控制”补位
怎么安全地批量替换,又不污染 node_modules 和配置文件
全局搜“密码”再点“全部替换”,十有八九会改到 node_modules 里的第三方库或 .env 里的真实凭证。必须主动限界:
- 在搜索面板右上角“files to include”填
**/*.ts,**/*.js,**/*.vue(按你项目实际后缀) - 在“files to exclude”填
node_modules,**/dist,**/.git,**/.env,**/public(多个用英文逗号分隔) - 别依赖
search.exclude全局设置——它可能被团队共用配置覆盖,临时填在这里才真正生效 - 如果项目用了 Git,替换前先
git status确认没未提交变更,避免把误改混进提交
替换内容怎么写才不翻车
想把“密码”替成“***”,看着简单,但 VS Code 替换字段里 $ 是特殊字符:
- 要输出字面量
***,直接写就行;但若想保留原词加掩码,比如“密码 → 密***”,就得用捕获组:(密码)搜索,替换为$1*** - 如果正则里用了非捕获组
(?:xxx),它不占编号,$1仍指第一个(...) - 想换行?替换框里按
Shift+Enter,不是Enter——后者会直接触发搜索 - 批量替换前务必点一下
Enter或 “Find All”,看左侧文件树里高亮的是否全是你要动的地方;VS Code 不提供 diff 预览,点了“Replace All”就真没了
为什么改完还要手动检查几处关键位置
正则再准,也覆盖不了所有语义场景。这几个地方最容易漏:
-
console.log("用户密码:", pwd)—— 字符串里“密码”是描述,不该删,但正则很难区分“描述词”和“字段名” -
const passwordField = ref("")—— 变量名含“password”,属于合法命名,应排除 -
import { decryptPassword } from "@/utils/crypto"—— 函数名带 password,但逻辑上不可脱敏 - HTML 模板里的
<label>密码</label>和v-model="form.password"混在一起,一个该掩码、一个该留,必须分开处理
真正安全的清理,永远是“正则筛出候选 → 人工逐个判断 → 小范围试跑 → Git diff 核验”。自动化的边界,就卡在这几步之间。











