Flutter数据验证插件utils_validators的使用
Flutter数据验证插件utils_validators的使用
utils_validators
是一个为Flutter和Dart项目提供常见数据验证功能的全面包。它提供了多种实用的验证器,可以简化应用程序的开发。适用于注册表单、用户输入等场景。
功能介绍
该包提供了以下几种常见的验证功能:
- 姓名验证:检查字符串是否符合有效的姓名格式,可以选择只验证名和姓。
- 手机号码验证:验证手机号码,初始支持安哥拉格式(+244)。
- URL验证:检查字符串是否为有效的URL。
- 相等性验证:检查两个字符串是否相等,可以选择是否区分大小写。
- 电子邮件验证:检查字符串是否为有效的电子邮件地址。
- 安哥拉身份证号验证:检查提供的安哥拉身份证号是否有效。
- 更多验证:还实现了许多其他验证功能,等待您去探索。
迁移指南
从1.0.x版本迁移到1.1.0版本时,增强了用户名验证的安全性,并添加了新的验证功能。
入门指南
要开始使用 utils_validators
,请按照以下步骤操作:
-
添加依赖:
flutter pub add utils_validators
-
导入包:
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
更多关于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'),
),
],
),
);
}
}
解释
-
Email 验证:
- 使用
EmailValidator().isValid(value)
方法来验证输入的电子邮件地址是否有效。
- 使用
-
电话号码验证:
- 使用
PhoneNumberValidator().isValid(value)
方法来验证输入的电话号码是否有效。
- 使用
-
密码验证:
- 检查密码长度是否至少为 8 个字符。
- 使用
PasswordValidator().hasUpperCase(value)
检查是否包含至少一个大写字母。 - 使用
PasswordValidator().hasLowerCase(value)
检查是否包含至少一个小写字母。 - 使用
PasswordValidator().hasNumber(value)
检查是否包含至少一个数字。
通过这些代码示例,你可以很方便地在 Flutter 应用中实现数据验证功能。