npm 包 bad-words 使用教程

在前端开发中,处理文字输入的场景经常出现。有时需要对用户输入进行过滤、屏蔽敏感词,这时候 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


猜你喜欢

  • npm 包 @gerhobbelt/babel-helper-transform-fixture-test-runner 使用教程

    在前端开发过程中,我们常常会使用到 Babel 进行代码转换和编译。而在测试阶段,我们也需要对代码进行一些测试,确保代码的正确性和可靠性。此时,@gerhobbelt/babel-helper-tra...

    4 年前
  • npm 包 @gerhobbelt/babel-helper-plugin-test-runner 使用教程

    简介 @gerhobbelt/babel-helper-plugin-test-runner 是一个 Babel 插件辅助的测试运行器。它可以帮助你快速运行单元测试,并生成测试报告。

    4 年前
  • npm 包 @gerhobbelt/babel-plugin-proposal-unicode-property-regex 使用教程

    简介 @gerhobbelt/babel-plugin-proposal-unicode-property-regex 是 babel 插件之一,顾名思义,它的作用是支持 Unicode 属性以及合法...

    4 年前
  • npm 包@gerhobbelt/babel-plugin-syntax-dynamic-import 使用教程

    在前端开发中,我们经常会用到模块化开发,而动态导入是模块化中的重要方式之一。而在 ES6 中,我们可以使用 import() 方法来进行动态导入,但在某些情况下,import() 并不能满足我们的需求...

    4 年前
  • npm 包 @gerhobbelt/babel-plugin-syntax-import-meta 使用教程

    npm 包 @gerhobbelt/babel-plugin-syntax-import-meta 使用教程 如果你正在开发一个 JavaScript 应用或库,你一定会使用到 Babel 这个工具来...

    4 年前
  • npm 包 @gerhobbelt/babel-preset-stage-3 使用教程

    在前端开发中,Babel 是一个非常有用的工具,它可以将最新版本的 JavaScript 代码转换成向后兼容的代码,使得我们能够在旧版浏览器上运行我们的应用程序。而 @gerhobbelt/babel...

    4 年前
  • npm 包 @gerhobbelt/babel-preset-stage-2 使用教程

    在前端开发中,JavaScript 是一种非常重要的语言。然而,不同的开发者有不同的喜好和风格,这就需要一些工具来将代码进行转化,使其适应不同的开发需求。Babel 是一个非常常见的工具,它可以将 J...

    4 年前
  • npm 包 @gerhobbelt/markdown-it-toc-and-anchor 使用教程

    如果你是一位前端开发者,你肯定知道 markdown 是一种编写文档的纯文本标记语言,非常适合写技术文档或者博客。但是,在编写大型文档或者网站时,经常需要生成文档目录和文章内部链接,这时候就需要使用著...

    4 年前
  • npm 包 @gerhobbelt/prepend-header 使用教程

    在前端开发的工作中,我们经常需要对多个 JavaScript 文件进行合并,或者需要给 Javascript 文件添加一些版权信息或者其他的头信息。这时,一个能够自动添加头信息的 npm 包就显得格外...

    4 年前
  • npm 包 @gerhobbelt/markdown-it-wikilinks 使用教程

    简介 在开发前端应用时,我们通常会用到各种依赖库和工具。而 npm 就是用来帮助我们管理这些依赖的工具。其中,@gerhobbelt/markdown-it-wikilinks 是一个非常有用的 np...

    4 年前
  • npm 包 @gerhobbelt/prismjs 使用教程

    简介 前端类的技术文章不可避免地需要讲到代码渲染,特别是在实现代码高亮的时候。而在这个领域里,@gerhobbelt/prismjs 是一个非常好用的 npm 包,它可以在浏览器端或者 Node.js...

    4 年前
  • npm 包 @gerhobbelt/markdown-it 使用教程

    随着现代 Web 技术的发展,前端开发的范围越来越广。其中,Markdown 已经成为了一种非常流行的文本格式,并被广泛用于写作、博客、文档等方面。在前端开发中,使用 Markdown 渲染引擎可以帮...

    4 年前
  • npm包@gerhobbelt/pretty-bytes使用教程

    随着前端开发的快速发展,JavaScript已经成为了最为流行的编程语言之一。在前端项目的开发过程中,我们经常需要处理数据的大小,这时候就需要使用到@gerhobbelt/pretty-bytes。

    4 年前
  • npm 包 @gerhobbelt/serve-index 使用教程

    介绍 @gerhobbelt/serve-index 是一个 Node.js 包,它提供了一个可以用于展示服务器上某一目录下文件列表的中间件。它可以被用作 Node.js 中 Express 等框架的...

    4 年前
  • npm 包 @gerhobbelt/stream-sink 使用教程

    前言 在前端开发中,我们通常需要处理很多数据。数据源可能是后端 API、LocalStorage、浏览器事件等。而基于流的操作可以轻松地处理这些数据源。 npm 包 @gerhobbelt/strea...

    4 年前
  • npm 包 @gerhobbelt/live-server 使用教程

    前言 在前端开发中,我们常常需要通过一个本地服务器来预览我们所写的代码。而 @gerhobbelt/live-server 就是这样一个本地服务器。它可以帮助我们快速启动一个本地服务器,并自动刷新网页...

    4 年前
  • npm 包 easy-svg 使用教程

    easy-svg 是一个基于 Node.js 的 npm 包,可以帮助前端开发人员快速生成 SVG 图形文件。本篇文章将详细介绍 easy-svg 包的使用方法,并提供示例代码帮助读者更加深入地学习和...

    4 年前
  • npm 包 remove-accents 使用教程

    在前端开发中,我们经常会遇到需要处理字符串的情况,特别是需要将原始字符串转换为 URL 可用的形式,或者需要在字符串中有着不同语言的字母时需要去除重音符。这时,我们可以使用一个叫做 remove-ac...

    4 年前
  • npm 包 @mariocasciaro/benchpress 使用教程

    什么是 @mariocasciaro/benchpress? @mariocasciaro/benchpress 是一款性能测试工具,可以帮助开发者测量 JavaScript 函数的性能和消耗资源情况...

    4 年前
  • npm 包 popsicle-transport-http 使用教程

    简介 popsicle-transport-http 是一个用于 Node.js 或浏览器环境下的 HTTP 请求发送器,该模块支持通过 Promise 机制来处理请求结果,并且与大多数的请求模块相比...

    4 年前

相关推荐

    暂无文章