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

是否存在可禁止代码中特定文本字符串的ESLint规则?

问题解答

ESLint 没有提供专门用于「禁止包含指定文本的字符串」的独立命名规则,但可以直接通过内置的通用语法校验规则no-restricted-syntax零插件实现这个需求,完全可以达到禁止任意字符串包含foo这类内容的校验效果。

实现配置

你只需要在ESLint配置文件中添加如下规则,即可覆盖普通单/双引号字符串、模板字符串两类场景的校验:

{
  "rules": {
    "no-restricted-syntax": [
      "error",
      // 匹配普通单/双引号字符串
      {
        "selector": "Literal[value=/foo/]",
        "message": "代码中的字符串不允许包含「foo」内容"
      },
      // 匹配 ` 包裹的模板字符串
      {
        "selector": "TemplateLiteral[quasis.element.value.raw=/foo/]",
        "message": "代码中的模板字符串不允许包含「foo」内容"
      }
    ]
  }
}

配置说明

  • 上述配置中的/foo/是匹配目标文本的正则,你可以根据需求替换成任意正则规则:比如要同时禁止包含foo和bar的字符串,可以改成/foo|bar/;如果需要精确匹配完全等于foo的字符串,加上首尾锚点改成/^foo$/即可,此时不会误报foobar这类仅包含子串的内容。
  • 如果你需要更细粒度的控制,比如排除作为对象key的字符串、只校验特定作用域下的字符串,只需要调整AST选择器的匹配条件即可,no-restricted-syntax支持全量AST节点属性的匹配,灵活度足够覆盖绝大多数自定义校验场景。
  • 配置里的message字段可以自定义成你需要的报错提示内容,命中规则时会直接展示给开发者。

内容的提问来源于stack exchange,提问作者Stewart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:03:19