搜索插件、代码仓与 APP 分类

插件详情v0.0.13

inspection

在 Dart 和 Flutter 中像 Laravel 框架一样验证表单输入和数据

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
231
喜欢数
21
Pub 分数
130

安装插件

flutter pub add inspection

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Inspection 是一个 Dart 和 Flutter 包,提供受 Laravel 框架启发的表单输入和数据验证功能。它允许开发者以声明式方式定义验证规则,确保在各个平台上实现稳健且一致的数据检查。通过支持自定义验证器、错误消息和可链式调用的规则,该包简化了 Flutter 应用中的表单处理。该包可在 Android、iOS、Web、macOS、Windows 和 Linux 上无缝运行,非常适合需要强大验证逻辑的跨平台应用。

适合场景

  • Flutter 应用中的表单验证
  • 提交前的数据完整性检查
  • 自定义验证规则实现
  • 跨平台验证一致性
  • 实时输入反馈
  • API请求数据预处理

主要特点

  • Laravel 风格的验证语法
  • 可链式验证规则
  • 自定义验证器支持
  • 本地化错误消息
  • 内置通用验证器
  • 平台无关设计

适合对象

  • 寻求 Laravel 风格验证的 Flutter 开发者
  • 具有复杂表单工作流的应用程序
  • 需要一致验证模式的团队
  • 需要国际化的项目
  • 开发可重用验证逻辑的开发者

使用建议

  • 需要理解 Laravel 风格的验证概念
  • 可能需要额外设置以支持复杂的嵌套验证
  • 与其他成熟包相比,文档有限
  • 未针对极高性能验证循环进行优化

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Flutter Inspection Package

Pub License: MIT


Inspection

With Inspection you can validate your inputs in Flutter & Dart like Laravel Framework.

How to install :

Add this to your package's pubspec.yaml file:

dependencies:
  inspection: ^0.0.14

Then You can install packages from the command line:

$ pub get

or

$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

Now in your Dart code, you can use:

import 'package:inspection/inspection.dart';

Basic Usage :

You have a form , you want to validate inputs everyday in programming . With Inspection you can validate your inputs in Dart like Laravel Framework . See examples below .

You expect a required number with many conditions and rules : In this case , we get help from Inspection helper function .

  TextFormField(
    validator: (input) => inspection(input, 'required|numeric|between:2000,6000|contains:22,33,55|ends_with:0'),
  ),

You can use Inspection class :

  TextFormField(
    validator: (input) => Inspection().inspect(input, 'required|float'),
  ),

And you can use helper function and Inspection class with List of rules , so you can make a global validation configuration List and you can change your rules in whole of the application whenever you want.

  TextFormField(
    validator: (input) => inspection(input, ['required','float']),
  ),

or

TextFormField(
    validator: (input) => inspect(input, ['required','float']),
  ),

Options :

You can set attribute name , custom message and locale . For example :

TextFormField(
    validator: (input) => inspect(input, 'required|float',message: 'my custom message here !'),
  ),

Rules :

Rule Description Example
iran_national_code Input must be a iranian national code inspect(input,'iran_national_code')
have_alpha The attribute must have alpha in it inspect(input,'have_alpha')
alpha_num The attribute must contains only letters and numbers inspect(input,'alpha_num')
between The attribute must be between :min and :max inspect(input,'between:3,9')
contains The attribute must contains one of your worlds inspect(input,'contains:farid,farhad')
email The attribute must be a valid email inspect(input,'email')
ends_with The attribute must ends with your pattern inspect(input,'ends_with:bye')
gt The attribute must grater than :gt inspect(input,'gt:10')
gte The attribute must grater than or equal to :gte inspect(input,'gte:10')
hex The attribute must be a valid hex code inspect(input,'hex')
in The attribute must be one of options in your list inspect(input,'in:farid,farhad,john')
ip The attribute must be a valid IP inspect(input,'ip')
lt The attribute must be less than :lt inspect(input,'lt:100')
lte The attribute must be less than or equal to :lte inspect(input,'lte:100')
max The attribute must have maximum :max character inspect(input,'max:10')
min The attribute must have at least :min character inspect(input,'min:3')
not_in The attribute must not exists in list :not_in inspect(input,'not_in:saman,ahmad')
numeric The attribute must be a number inspect(input,'numeric')
alpha The attribute must contains only letters inspect(input,'alpha')
float The attribute must be float inspect(input,'float')
integer The attribute must be integer inspect(input,'integer')
number The attribute must contains only number inspect(input,'number')
regex The attribute must match with regex inspect(input,'regex:^[a-zA-Z0-9]')
required The attribute field is required inspect(input,'required')
starts_with The attribute must starts with your pattern inspect(input,'starts_with:hi')
url The attribute must be a valid url inspect(input,'url')

Locales :

Inspection supports two languages now . English with code : en , and Persian with code fa and Vietnamese with code vi. You can set locale when initialize inspection or in optional parameter of inspect method. For example :

  TextFormField(
    validator: (input) => Inspection(inspectionLocale : 'fa').inspect(input, 'required|in:farid,farhad'),
  ),

or

  TextFormField(
    validator: (input) => Inspection().inspect(input, 'required|in:farid,farhad',locale:'fa'),
  ),

Custom Rules :

You can simply extend from Inspection class and develop your custom rule . For example :

class CustomInspection extends Inspection {
  String myCustomRule(ruleString, inspectionCase) {
    switch (ruleString) {
      case 'myCustomRule':
        // Your conditional codes here or copy from a Rule class and change it to your own . 
        return MyCustomeRuleClass(inspectionCase).stringValidation();
    }
    return null;
  }
}

Contribute :

You can help me and contribute for :

  • New rules
  • More locales
  • Better exceptions

所属分类

源码仓库

使用此插件的项目

暂无相关数据。