You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让JavaScript检测对象键是否包含敏感词子串而非全匹配?

解决对象键包含敏感词子串的匹配问题

你的问题出在当前代码用的是全字符串匹配(includes(el)检查的是键数组是否完全等于敏感词),而需求是判断键是否包含敏感词作为子串。只需修改匹配逻辑,改为检查每个键是否包含对应敏感词即可:

const body = {
  name: "",
  email: "",
  otpp: ""
}
const sensitiveWords = ["password", "pin", "otp"]

const isSensitive = sensitiveWords.some(sensitiveWord => 
  // 遍历body的所有键,只要有一个键包含当前敏感词就返回true
  Object.keys(body).some(key => 
    key.toLowerCase().includes(sensitiveWord.toLowerCase())
  )
)

console.log(isSensitive); // 输出: true

逻辑说明:

  • 外层some遍历敏感词数组,只要有一个敏感词满足匹配条件,整个表达式就返回true
  • 内层some遍历body的键,将键转为小写后,检查是否包含当前敏感词(同时将敏感词转小写是为了实现大小写不敏感匹配,比如键是OTPP也能匹配otp)
  • 不需要额外添加|| false,因为Array.prototype.some本身就会返回布尔值:找到匹配项返回true,无匹配项返回false

内容的提问来源于stack exchange,提问作者Surjith S M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 20:45:31