更新记录
1.0.0(2026-07-19)
首发:自研高性能原生多模式匹配核心,敏感词过滤提供 uni-app 可调的 JS 对象 API:建一次词库、反复过滤(filter 替换敏感词为 *、contains
平台兼容性
uni-app x(5.14)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | 5.0 | 12 | × | × |
nex-wordfilter —— 高性能敏感词过滤
自研高性能原生多模式匹配核心,实现敏感词过滤,提供 uni-app 可调的 JS 对象 API。 支持 App 端(Android / iOS)+ H5 端(全 API 可用);小程序不支持。
同一份 utssdk 插件同时支持 uni-app x(uvue) 与 经典 uni-app(vue3),无需分叉。
WordFilter是有状态对象——用一批敏感词构造一次(构建匹配自动机), 之后反复调用filter/containsSensitive,别每次过滤都new(构建自动机有成本)。 自研核心,无额外系统依赖。
API(对象型)
| 成员 | 签名 | 说明 |
|---|---|---|
| 构造 | new WordFilter(keywords: string[]) |
用敏感词数组构造过滤器(建一次、反复用) |
| 方法 | filter(text: string): string |
把命中的敏感词替换为 *,返回过滤后文本 |
| 方法 | containsSensitive(text: string): boolean |
是否命中敏感词(用于快速拒绝发送) |
- 替换策略:每个命中的敏感词整体替换为一个
*(非逐字符;如笨蛋→*)。 - 默认大小写敏感(词库
bad不会过滤BAD)。 - 重叠/嵌套词(如词库含
Youtube与You)按 Aho-Corasick 匹配语义处理(最左最早命中)。 - 空文本原样返回;空词库则恒不命中(
filter原样返回、containsSensitive恒false)。 - 中文 / Emoji 混排按字节安全处理,不会因 UTF-8 边界出错。
用法
import { WordFilter } from "@/uni_modules/nex-wordfilter";
// 1. 用敏感词构造一次(App 启动时建好,复用这个实例)
const filter = new WordFilter(["bad", "笨蛋", "VPN"]);
// 2. 反复使用
filter.filter("你这个笨蛋"); // "你这个*"
filter.containsSensitive("hello"); // false
filter.containsSensitive("有 VPN"); // true
平台与调试边界
- App 端支持 app-android / app-ios;H5 端全 API 可用;各家小程序不支持。
- Android 本地真机调试需 HBuilderX ≥ 4.26(自定义调试基座),云打包不受此限。
- iOS 端含 Swift 组件,宿主原生工程需开启「支持 Swift」。
- 最终 App 打包由 HBuilderX /
@dcloudioCLI 完成。

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 1178
赞赏 0
下载 12438100
赞赏 1934
赞赏
京公网安备:11010802035340号