Flutter不良词汇过滤插件dart_profanity的使用

发布于 1周前 作者 htzhanglong 来自 Flutter

Flutter不良词汇过滤插件dart_profanity的使用

标题

Flutter不良词汇过滤插件dart_profanity的使用

内容

这是一个用Dart编写的脏话过滤器。 ⚠️️ 仍在开发中,尚未准备好使用。 ⚠️️

此包可以对字符串序列进行脏话过滤,并提供一些适合您需求的屏蔽选项。

实验性 🚧

Dart Profanity 是一个正在开发中的实验项目,目前不应在生产环境中使用。

特性
  • 对英文、德文和土耳其语(更多语言即将加入)中的脏话进行屏蔽
  • 可以启用第一个字母并屏蔽其余部分(更多选项即将加入)
  • 简单的API,没有额外开销
  • 没有第三方依赖
  • 对所有人开放
  • 鼓励贡献
开始使用

在控制台输入:

pub get dart_profanity
使用方法
import 'package:dart_profanity/dart_profanity.dart';

void main() {
  final profanity = Profanity(languages: ['en']); // 短捷方式,因为默认为 en
  final isProfanity = profanity.containsProfanity('YoU aRe aN aSShole & FuCKer.');
  print(isProfanity); // 输出: true

  final censoredWithAsterisk = profanity.censor(
    'Asshole',
    bleepType: CensorBleepType.asterisk,
  );
  print(censoredWithAsterisk); // 输出: *******
}
补充信息

GitHub: https://github.com/RahmiTufanoglu/dart_profanity

示例代码

import 'package:dart_profanity/dart_profanity.dart';

void main() {
  final profanity = Profanity();
  final result = profanity.censor(
    'FuckYou assfucker Asshole and p Pussy!',
    bsterisk,
    censorType: CensorType.firstLetter,
  );
  print('result: $result');

  //final profanity = Profanity(languages: ['de', 'en', 'gg']);
  //final censored = profanity.censor('Du bist ein mega Arschloch & DuWichser.');
  //print('censored0: $censored');

  //final censored1 = profanity.censor('Du bist ein mega Arschloch & DuWichser.');
  //print('censored1: $censoreddo');

  //final dartProfanity2 = Profanity();
  //final censored2 = dartProfanity2.c censor('Du bist ein mega arschloch & DuAsS!';
  //print('censored2: $censored2');

  //final censored3 = dartProfanity2.censor(
  //  'Du bist ein mega arschloch & DuAsS!',
  //  censorType: CensorType.firstLetter,
  //);
  //print('censored3: $censored3');
}

更多关于Flutter不良词汇过滤插件dart_profanity的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter不良词汇过滤插件dart_profanity的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用dart_profanity插件进行不良词汇过滤的示例代码。这个插件可以帮助你检测并过滤文本中的不良词汇。

首先,确保你已经在pubspec.yaml文件中添加了dart_profanity依赖:

dependencies:
  flutter:
    sdk: flutter
  dart_profanity: ^最新版本号  # 请替换为最新的版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以按照以下步骤使用dart_profanity插件:

  1. 导入插件

在你的Dart文件中导入dart_profanity

import 'package:dart_profanity/dart_profanity.dart';
  1. 初始化并使用ProfanityFilter

下面是一个简单的示例,展示如何使用ProfanityFilter来检测并过滤不良词汇:

import 'package:flutter/material.dart';
import 'package:dart_profanity/dart_profanity.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final TextEditingController _controller = TextEditingController();
  String _filteredText = '';

  @override
  void initState() {
    super.initState();
    // 初始化ProfanityFilter,可以选择加载自定义词库
    ProfanityFilter.initialize();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('不良词汇过滤示例'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            TextField(
              controller: _controller,
              decoration: InputDecoration(
                labelText: '输入文本',
              ),
              maxLines: 5,
            ),
            SizedBox(height: 16),
            ElevatedButton(
              onPressed: () {
                setState(() {
                  // 使用ProfanityFilter进行过滤
                  _filteredText = ProfanityFilter.clean(_controller.text);
                });
              },
              child: Text('过滤文本'),
            ),
            SizedBox(height: 16),
            Text(
              '过滤后的文本:',
              style: TextStyle(fontSize: 18),
            ),
            Text(
              _filteredText,
              style: TextStyle(fontSize: 16, color: Colors.grey),
            ),
          ],
        ),
      ),
    );
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,用户可以输入文本,然后点击按钮来过滤不良词汇。ProfanityFilter.clean方法会返回过滤后的文本,其中不良词汇会被替换为星号或其他指定的字符(根据插件的默认行为或配置)。

注意:dart_profanity插件的具体用法和配置可能会根据版本有所不同,请参考插件的官方文档以获取最新的使用指南和配置选项。

回到顶部