Flutter表单验证插件do_validator的使用

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

Flutter表单验证插件do_validator的使用

本包提供了一种简单且高效的方法来验证多米尼加共和国的身份证号码。非常适合那些需要确保其应用程序中身份文件有效性的开发者。它根据官方规则检查身份证号码的格式和完整性。

安装

你可以通过以下方式安装该包:

使用Dart:

dart pub add do_validator 

使用Flutter:

flutter pub get do_validator 

示例

离线验证

import 'package:do_validator/do_validator.dart';

void main() {
  const document = '12345678902';

  final bool validation = documentValidator(document);
  print(validation); // 输出:false
}

API调用验证

import 'package:do_validator/do_validator.dart';

void main() async {
  const document = '12345678902';

  final result = await electoralRollValidation(document);
  print(result); // 输出:{"statusCode": 200, "valid": true, "message": "Valid Document"}
}

API

documentValidator(document)

离线验证多米尼加身份证号码的有效性。

参数

  • document (string): 需要验证的身份证号码,11个字符且不含特殊字符。

返回值

  • boolean: 如果身份证号码有效则返回 true,否则返回 false
// 离线验证
final bool validation = documentValidator(document);
print(validation); // 输出:false

electoralRollValidation(document)

通过API调用验证多米尼加身份证号码的有效性。

参数

  • document (string): 需要验证的身份证号码,11个字符且不含特殊字符。

返回值

  • Map<String, dynamic>: 包含状态码、是否有效以及消息的映射。
// 通过API调用验证
final result = await electoralRollValidation(document);
print(result); // 输出:{"statusCode": 200, "valid": true, "message": "Valid Document"}

完整示例Demo

import 'package:do_validator/do_validator.dart';

void main() async {
  const document = '12345678902';

  // 离线验证
  final bool offlineValidation = documentValidator(document);
  print('Offline Validation Result: $offlineValidation'); // 输出:false

  // API调用验证
  final result = await electoralRollValidation(document);
  print('API Call Validation Result: $result'); // 输出:{"statusCode": 200, "valid": true, "message": "Valid Document"}
}

更多关于Flutter表单验证插件do_validator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter表单验证插件do_validator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 do_validator 插件在 Flutter 中进行表单验证的示例代码。do_validator 是一个流行的 Flutter 插件,用于简化表单字段的验证过程。

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

dependencies:
  flutter:
    sdk: flutter
  do_validator: ^x.y.z  # 请替换为最新版本号

然后运行 flutter pub get 来获取依赖。

接下来是一个完整的示例代码,展示如何使用 do_validator 进行表单验证:

import 'package:flutter/material.dart';
import 'package:do_validator/do_validator.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 formKey = GlobalKey<FormState>();
  late Validator validator;

  @override
  void initState() {
    super.initState();
    validator = Validator(keys: {
      'email': EmailValidator(errorText: '请输入有效的电子邮件地址'),
      'password': MultiValidator([
        LengthValidator(minLength: 6, maxLength: 20, errorText: '密码长度必须在6到20个字符之间'),
        RequiredValidator(errorText: '密码是必填项'),
      ]),
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('表单验证示例'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Form(
          key: formKey,
          child: Column(
            children: [
              TextFormField(
                decoration: InputDecoration(labelText: '电子邮件'),
                validator: (value) {
                  return validator.validate('email', value) ?? null;
                },
                onSaved: (value) {},
              ),
              TextFormField(
                decoration: InputDecoration(labelText: '密码'),
                obscureText: true,
                validator: (value) {
                  return validator.validate('password', value) ?? null;
                },
                onSaved: (value) {},
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: () async {
                  if (formKey.currentState!.validate()) {
                    final result = await validator.validateAll();
                    if (result.isEmpty) {
                      // 表单验证通过,执行提交操作
                      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('表单提交成功')));
                    } else {
                      // 表单验证未通过,显示错误信息
                      final errorMessages = result.values.expand((e) => e).join('\n');
                      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(errorMessages)));
                    }
                  }
                },
                child: Text('提交'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

解释

  1. 依赖导入:确保在 pubspec.yaml 中添加 do_validator 依赖。
  2. 表单和验证器初始化:在 MyHomePageinitState 方法中初始化 Validator 对象,并配置每个字段的验证规则。
  3. TextFormField 配置:在每个 TextFormField 中使用 validator 属性来调用 validator.validate 方法,传入字段名和值。
  4. 表单提交逻辑:在按钮的 onPressed 方法中,首先调用 formKey.currentState!.validate() 方法验证所有字段是否通过基本的非空和格式验证。然后使用 validator.validateAll() 方法进行详细的验证,并根据验证结果显示相应的错误信息或提交表单。

这个示例展示了如何使用 do_validator 插件进行基本的表单验证,包括电子邮件格式验证和密码长度及必填验证。你可以根据需要扩展和自定义验证规则。

回到顶部