在前端开发中,处理文字输入的场景经常出现。有时需要对用户输入进行过滤、屏蔽敏感词,这时候 npm 上的 bad-words 包就派上了用场。本文将介绍 bad-words 的使用方法及其指导意义。
什么是 bad-words?
bad-words 是一个 Node.js 包,它是一个用来过滤敏感词的工具。其底层数据来源于 ld-lists,该数据表示由社区维护的一个庞大的、包含数万个糟糕词语的列表。
使用 bad-words,可以轻松地把这些词语用星号或其他符号替换掉,实现敏感词过滤等场景。
安装 bad-words
bad-words 是一个可以通过 npm 安装的 Node.js 包。可以在命令行中输入以下命令进行安装:
npm install bad-words --save
使用示例
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