ansi-regex

中文文档
6.5.0发布于 2026/10/29MITTypeScriptES Module零依赖近 30 天下载 20亿

用于匹配ANSI转义码的正则表达式

中文使用文档
文档目录8 节
  1. 安装
  2. 用法
  3. API
  4. ansiRegex(选项?)
  5. 重要的
  6. 常见问题解答
  7. 为什么要测试不符合ECMA 48标准的代码?
  8. 维护人员

ansi-regex

匹配正则表达式 ANSI转义码

安装

npm install ansi-regex

用法

import ansiRegex from 'ansi-regex';

ansiRegex().test('\u001B[4mcake\u001B[0m');
//=> true

ansiRegex().test('cake');
//=> false

'\u001B[4mcake\u001B[0m'.match(ansiRegex());
//=> ['\u001B[4m', '\u001B[0m']

'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true}));
//=> ['\u001B[4m']

'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex());
//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']

API

ansiRegex(选项?)

返回匹配ANSI转义码的正则表达式。

选项

类型: object

onlyFirst

类型: boolean
默认值: false (匹配字符串中的任何ANSI转义码)

只匹配第一个ANSI转义。

重要的

如果在服务器上下文中针对不受信任的用户输入运行正则表达式,则应该 给它一个时间。

我不认为 重做 此包的有效漏洞。

常见问题解答

为什么要测试不符合ECMA 48标准的代码?

我们作为测试运行的一些代码是我们在寻找各种非标准或制造商特定代码列表时获得的代码。我们对标准代码和非标准代码都进行了测试,因为它们大多数都遵循相同或类似的格式,并且可以安全地在字符串中进行匹配,而不会有删除实际字符串内容的风险。有一些不遵循传统格式的非标准控制代码(例如: 它们以数字结尾),从而迫使我们将它们排除在测试之外,因为我们无法可靠地匹配它们。

从历史的角度来看,这些ECMA标准是在90年代初建立的,而VT100则是在70年代中后期设计的。在那个时候,控制代码仍然是相当不受控制的,工程师们将它们用于许多事情,即激活可能已经专有的硬件端口。 在其他地方,你可以看到类似的“混乱”代码出现在x86处理器架构中;在某些品牌的处理器上有大量的“中断”,它们可能意味着不同的东西,其中大多数已经被淘汰了。

维护人员

版本与发布记录

ansi-regex 共发布 24 个版本,首次发布于 2014/06/04;过去 12 个月发布了 3 个版本。

版本发布日期距今
6.5.0latest2026/10/296 天前
6.4.02026/09/271 个月前
6.3.02026/08/122 个月前
6.2.22025/09/081.2 年前
6.2.12025/09/081.2 年前
6.2.02025/08/181.2 年前

关于 ansi-regex 的常见问题

ansi-regex 是什么?

用于匹配ANSI转义码的正则表达式

如何安装 ansi-regex?

在项目目录运行 npm install ansi-regex,或使用 pnpm add / yarn add / bun add。

ansi-regex 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

ansi-regex 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

ansi-regex 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

ansi-regex 可以商用吗?

ansi-regex 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

ansi-regex 的下载量有多少?

根据 npm 官方下载统计,ansi-regex 在 2026/10/04 – 2026/11/02 这 30 天内被下载 1,995,886,547 次,日均约 66,529,552 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

ansi-regex 还在维护吗?

最新版本 6.5.0 发布于 2026/10/29(6 天前);至今共发布 24 个版本,其中过去 12 个月发布了 3 个;首次发布于 2014/06/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。