npm 包 bad-words 使用教程

阅读时长 6 分钟读完

在前端开发中,处理文字输入的场景经常出现。有时需要对用户输入进行过滤、屏蔽敏感词,这时候 npm 上的 bad-words 包就派上了用场。本文将介绍 bad-words 的使用方法及其指导意义。

什么是 bad-words?

bad-words 是一个 Node.js 包,它是一个用来过滤敏感词的工具。其底层数据来源于 ld-lists,该数据表示由社区维护的一个庞大的、包含数万个糟糕词语的列表。

使用 bad-words,可以轻松地把这些词语用星号或其他符号替换掉,实现敏感词过滤等场景。

安装 bad-words

bad-words 是一个可以通过 npm 安装的 Node.js 包。可以在命令行中输入以下命令进行安装:

使用示例

bad-words 的使用非常简单。只需传入要处理的字符串和选项,即可获得处理后的结果。以下是一个基本的示例:

-- -------------------- ---- -------
----- -------- - ---------------------

-- --- ---------
----- -------- - --- -----------

-- -----
----- -------- - -------------------- -- - ---- ------ ---- --- ------ --------

---------------------- -- ---- -- - ---- ------ ---- --- ------ -----

以上示例演示了如何使用 bad-words 过滤一个包含敏感词的字符串。初始化 bad-words 是必需的,因为构造函数中包含了一些配置项,如是否启用严格模式(例如,如果包含像 "fucking" 这样的单词,是否应该被替换)等。

如需更改 bad-words 的配置项,可以将选项对象传递给构造函数。例如,以下示例设置了 bad-words 的 strictMode 选项为 false:

-- -------------------- ---- -------
----- -------- - ---------------------

-- ----- ---------
----- -------- - --- ----------
  ----------- -----
---

-- -----
----- -------- - -------------------- -- - ---- ------ ---- --- ------ -----------

---------------------- -- ---- -- - ---- ------ ---- --- ------ --------

使用详解

bad-words 的 API 很简单,只有一个方法:clean()。但是,根据不同的需求,还是有一些需要注意的地方。

配置选项

bad-words 可以在初始化时接受一个选项对象,用于自定义其行为:

  • rounds: 重复替换次数,即将敏感词用什么符号替换。默认值是 5,可通过指定这个属性来覆盖它。
  • placeHolder: 用于替换敏感词的符号,默认为 *
  • emptyList: 如果数据源列表为空,是否应该启用。默认值为 false
  • extraList: 包含了您自己的敏感词列表。如果有,将加载到默认的列表中。
  • strictMode: 是否只匹配整词。默认为 true
  • replaceRegEx: 要用于替换敏感词的正则表达式。默认为 /(?:\r\n|\r|\n)/g

选择恰当的符号

默认情况下,bad-words 使用星号符号 * 来替换所有敏感词。但是,有时替换成用于转义的符号比如 \* 会更好,否则敏感词可能被解释为正则表达式。以下是一个示例:

-- -------------------- ---- -------
----- -------- - ---------------------

-- ---------
----- -------- - --- ----------
  ------------ -----
---

-- -----
----- -------- - -------------------- -- - ---- ------ ---- --- ------ --------

---------------------- -- ---- -- - ---- ------ ---- --- ------ -------

使用自定义敏感词列表

bad-words 的一大优势是可以接受自定义的敏感词列表。这个列表可以是 JS 数组,而不是 ld-list 或其它格式。例如:

-- -------------------- ---- -------
----- -------- - ---------------------

-- ----------
----- -------- - --- ----------
  ---------- ---------- ------ --------
---

-- -----
----- -------- - -------------------- -- - ---- ------ ---- --- ------ ----------

---------------------- -- ---- -- - ---- ------ ---- --- ------ ------

注意大小写敏感性

默认情况下,bad-words 是大小写敏感的。也就是说,如果匹配的单词与列表中的词不完全匹配,它将不会被视为敏感词。可以设置 options.strictMode 选项来关闭这个行为。如下面的示例:

-- -------------------- ---- -------
----- -------- - ---------------------

-- -- ---------- - -----
----- -------- - --- ----------
  ----------- -----
---

-- -----
----- -------- - -------------------- -- - ---- ------ ---- --- ------ ---------

---------------------- -- ---- -- - ---- ------ ---- --- ------ -----

处理多个单词

如果需要处理一个字符串中有多个敏感词的情况,可以通过以下方式扩展:

-- -------------------- ---- -------
----- -------- - ---------------------

-- -----
----- -------- - ----- -- - ---- ------ ---- --- ------ ---- --- ------------- ----------- -- -
  ----- -------- - --- -----------
  ------ ---------------------
--------- ---

---------------------- -- ---- -- - ---- ------ ---- --- ------ ---- --- ----

总结

bad-words 是一个非常实用的 node.js 包,可以帮助开发者快速处理诸如过滤敏感词等场景。使用起来非常简单,只需要初始化 bad-words 并调用其 clean() 方法即可。虽然它提供了一些配置选项来方便开发者自定义使用,但对于一般需求,使用默认配置即可。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f04360e403f2923b035be64

纠错
反馈