Flutter数据验证插件utils_validators的使用

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

Flutter数据验证插件utils_validators的使用

utils_validators 是一个为Flutter和Dart项目提供常见数据验证功能的全面包。它提供了多种实用的验证器,可以简化应用程序的开发。适用于注册表单、用户输入等场景。

功能介绍

该包提供了以下几种常见的验证功能:

  • 姓名验证:检查字符串是否符合有效的姓名格式,可以选择只验证名和姓。
  • 手机号码验证:验证手机号码,初始支持安哥拉格式(+244)。
  • URL验证:检查字符串是否为有效的URL。
  • 相等性验证:检查两个字符串是否相等,可以选择是否区分大小写。
  • 电子邮件验证:检查字符串是否为有效的电子邮件地址。
  • 安哥拉身份证号验证:检查提供的安哥拉身份证号是否有效。
  • 更多验证:还实现了许多其他验证功能,等待您去探索。

迁移指南

从1.0.x版本迁移到1.1.0版本时,增强了用户名验证的安全性,并添加了新的验证功能。

入门指南

要开始使用 utils_validators,请按照以下步骤操作:

  1. 添加依赖

    flutter pub add utils_validators
    
  2. 导入包

    import 'package:utils_validators/utils_validators.dart';
    

使用示例

以下是使用 utils_validators 进行各种验证的完整示例代码:

import 'package:utils_validators/utils_validators.dart';

void main() {
  // 姓名验证
  print('姓名验证:');
  print(UtilsValidators.isName("Fredh Muzua Felix")); // true
  print(UtilsValidators.isName("Fredh Muzua Felix", isFirstAndLastName: true)); // false (仅验证名和姓)
  print(UtilsValidators.isName("José Direto 2")); // false
  print(UtilsValidators.isName("Eclesiaste")); // true
  print(UtilsValidators.isName("eclesiaste")); // false (默认区分大小写)

  // 手机号码验证 (安哥拉 +244)
  print('\n手机号码验证:');
  print(UtilsValidators.isNumber("939164990")); // true
  print(UtilsValidators.isNumber("9391649900")); // false (号码过长)
  print(UtilsValidators.isNumber("+244939164990")); // true
  print(UtilsValidators.isNumber("939 164 990")); // true
  print(UtilsValidators.isNumber("939-164-990")); // true

  // URL验证
  print('\nURL验证:');
  print(UtilsValidators.isURL("https://google.com/")); // true
  print(UtilsValidators.isURL("example.com")); // true
  print(UtilsValidators.isURL("https://example")); // false (缺少顶级域名)

  // 相等性验证
  print('\n相等性验证:');
  print(UtilsValidators.isEqual("Eclesiaste", "Eclesiaste")); // true
  print(UtilsValidators.isEqual("Eclesiaste", "eclesiaste", isCaseSentive: false)); // true (不区分大小写)

  // 电子邮件验证
  print('\n电子邮件验证:');
  print(UtilsValidators.isEmail("eclesiaste@gmail.com")); // true
  print(UtilsValidators.isEmail("eclesiaste")); // false

  // 安哥拉身份证号验证
  print('\n安哥拉身份证号验证:');
  print(UtilsValidators.isAngolanId("001213259CC010")); // true
  print(UtilsValidators.isAngolanId("001213259AA010")); // false
}

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

1 回复

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


当然,utils_validators 是一个在 Flutter 中用于数据验证的实用插件。它提供了一系列便捷的方法,用于验证各种输入数据,比如电子邮件、电话号码、密码强度等。以下是一些常见的验证场景及其对应的代码示例。

首先,你需要在你的 pubspec.yaml 文件中添加 utils_validators 依赖:

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

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

示例代码

以下是一些使用 utils_validators 进行数据验证的示例代码:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Data Validation Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: ValidationForm(),
        ),
      ),
    );
  }
}

class ValidationForm extends StatefulWidget {
  @override
  _ValidationFormState createState() => _ValidationFormState();
}

class _ValidationFormState extends State<ValidationForm> {
  final _formKey = GlobalKey<FormState>();
  String _email = '';
  String _phoneNumber = '';
  String _password = '';

  @override
  Widget build(BuildContext context) {
    return Form(
      key: _formKey,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          TextFormField(
            decoration: InputDecoration(labelText: 'Email'),
            validator: (value) {
              if (!EmailValidator().isValid(value)) {
                return 'Please enter a valid email address.';
              }
              return null;
            },
            onChanged: (value) {
              setState(() {
                _email = value;
              });
            },
          ),
          TextFormField(
            decoration: InputDecoration(labelText: 'Phone Number'),
            validator: (value) {
              if (!PhoneNumberValidator().isValid(value)) {
                return 'Please enter a valid phone number.';
              }
              return null;
            },
            onChanged: (value) {
              setState(() {
                _phoneNumber = value;
              });
            },
          ),
          TextFormField(
            decoration: InputDecoration(labelText: 'Password'),
            validator: (value) {
              if (value.length < 8) {
                return 'Password must be at least 8 characters long.';
              }
              if (!PasswordValidator().hasUpperCase(value)) {
                return 'Password must contain at least one uppercase letter.';
              }
              if (!PasswordValidator().hasLowerCase(value)) {
                return 'Password must contain at least one lowercase letter.';
              }
              if (!PasswordValidator().hasNumber(value)) {
                return 'Password must contain at least one number.';
              }
              return null;
            },
            obscureText: true,
            onChanged: (value) {
              setState(() {
                _password = value;
              });
            },
          ),
          SizedBox(height: 20),
          ElevatedButton(
            onPressed: () {
              if (_formKey.currentState!.validate()) {
                // Perform submit action, e.g., navigate to next screen
                print('Form submitted with:');
                print('Email: $_email');
                print('Phone Number: $_phoneNumber');
                print('Password: $_password');
              }
            },
            child: Text('Submit'),
          ),
        ],
      ),
    );
  }
}

解释

  1. Email 验证

    • 使用 EmailValidator().isValid(value) 方法来验证输入的电子邮件地址是否有效。
  2. 电话号码验证

    • 使用 PhoneNumberValidator().isValid(value) 方法来验证输入的电话号码是否有效。
  3. 密码验证

    • 检查密码长度是否至少为 8 个字符。
    • 使用 PasswordValidator().hasUpperCase(value) 检查是否包含至少一个大写字母。
    • 使用 PasswordValidator().hasLowerCase(value) 检查是否包含至少一个小写字母。
    • 使用 PasswordValidator().hasNumber(value) 检查是否包含至少一个数字。

通过这些代码示例,你可以很方便地在 Flutter 应用中实现数据验证功能。

回到顶部