CodeQL 文档

空字符类

ID: js/regex/empty-character-class
Kind: problem
Security severity: 
Severity: warning
Precision: very-high
Tags:
   - reliability
   - correctness
   - regular-expressions
Query suites:
   - javascript-security-and-quality.qls

点击查看 CodeQL 仓库中的查询

正则表达式中的空字符类不匹配任何内容,可能表明代码缺失。

建议

省略空字符类。如果整个正则表达式将变为空,请使用`/(?:)/` 来表示一个故意为空的正则表达式。

示例

在下面的示例中,程序员可能想要编写一个匹配左方括号或左大括号,后跟一个或多个字母或数字,最后是右方括号或右大括号的正则表达式。但是,他们忘记用反斜杠转义右方括号,导致出现空字符类。生成的正则表达式格式错误,可能在不同的平台上被解释为不同的含义。

if (!/[[{]\w+[]}]/.test(input))
	console.log("Malformed input.");

要解决此问题,应将正则表达式重写为`/[\[{]\w+[\]}]/`。

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私