Flutter表单验证插件easy_breezy_validator的使用
Flutter表单验证插件easy_breezy_validator的使用
easy_breezy_validator
是一个简单的纯Dart文本验证库,用于验证您的需求。
特性
- ⚡️ 纯Dart: 可以灵活构建,无需任何Flutter代码。
- 🧷️ 文档齐全: 每个规则都有代码文档。
使用方法
示例1
/// true or false
var isEmailValid = isEmail("mohamedkx77@gmail.com");
var yourTextField = TextFormField(
validator: isEmailValid ? null : "请填写有效的电子邮件地址",
);
在这个示例中,我们定义了一个名为 isEmailValid
的变量来检查输入的电子邮件地址是否有效。如果电子邮件地址无效,则在 TextFormField
的 validator
属性中返回错误信息。
示例2
/// true or false
var isMyFullNameValid = isFullName("Muhammed Khaled");
String? gimmeMyNameOrNull(){
if(isMyFullNameValid){
return "Muhammed Khaled";
}else{
return null;
}
}
在这个示例中,我们定义了一个名为 isMyFullNameValid
的变量来检查输入的全名是否有效。如果全名无效,则返回 null
;否则返回全名字符串。
当前规则
以下是当前支持的一些验证规则:
var isEmailValid = isEmail("mohamedkx77@gmail.com");
var isFullNameValid = isFullName("Muhammed Khaled");
var isNameValid = isName("Muhammed");
var isDateOfBirthValid = isDateOfBirth("1999/01/11");
var isEgyptianPhoneValid = isDateOfBirth("01112345678");
更多关于Flutter表单验证插件easy_breezy_validator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter表单验证插件easy_breezy_validator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter中使用easy_breezy_validator
插件进行表单验证的代码示例。这个插件可以帮助你简化表单验证的过程。
首先,你需要在你的pubspec.yaml
文件中添加easy_breezy_validator
依赖:
dependencies:
flutter:
sdk: flutter
easy_breezy_validator: ^x.y.z # 请替换为最新版本号
然后运行flutter pub get
来获取依赖。
接下来,我们可以创建一个简单的表单,并使用easy_breezy_validator
进行验证。
1. 创建数据模型
首先,我们需要定义一个数据模型,并使用@required
和@validate
注解来指定哪些字段是必填的,以及如何验证这些字段。
import 'package:easy_breezy_validator/easy_breezy_validator.dart';
class UserModel {
@required
@validate(minLength: 3, maxLength: 15, message: "Name must be between 3 and 15 characters")
String name = "";
@required
@validate(email: true, message: "Please enter a valid email address")
String email = "";
@required
@validate(minLength: 6, message: "Password must be at least 6 characters long")
String password = "";
// Convert to a map for easy JSON serialization/deserialization
Map<String, dynamic> toMap() {
return {
'name': name,
'email': email,
'password': password,
};
}
}
2. 创建表单UI
然后,我们创建一个简单的表单UI来收集用户输入。
import 'package:flutter/material.dart';
import 'package:easy_breezy_validator/easy_breezy_validator.dart';
import 'user_model.dart'; // 假设你将上面的模型保存在 user_model.dart 文件中
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Form Validation Example'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: MyForm(),
),
),
);
}
}
class MyForm extends StatefulWidget {
@override
_MyFormState createState() => _MyFormState();
}
class _MyFormState extends State<MyForm> {
final _formKey = GlobalKey<FormState>();
late UserModel user;
late EasyBreezyValidator validator;
@override
void initState() {
super.initState();
user = UserModel();
validator = EasyBreezyValidator(user);
}
void _submitForm() {
if (_formKey.currentState!.validate()) {
if (validator.validate()) {
// If validation passes, you can submit the form
print('Form Submitted');
print(user.toMap());
} else {
// If validation fails, print the errors
validator.errors.forEach((key, value) {
print("${key.toString().split('.').last}: ${value.join(', ')}");
});
}
}
}
@override
Widget build(BuildContext context) {
return Form(
key: _formKey,
child: Column(
children: [
TextFormField(
decoration: InputDecoration(labelText: 'Name'),
validator: (value) {
if (value == null || value.isEmpty) {
return 'Name is required';
}
// Since we're already validating with EasyBreezyValidator, we don't need to re-validate here
return null;
},
onSaved: (value) {
user.name = value!;
},
),
TextFormField(
decoration: InputDecoration(labelText: 'Email'),
validator: (value) {
if (value == null || value.isEmpty) {
return 'Email is required';
}
// Since we're already validating with EasyBreezyValidator, we don't need to re-validate here
return null;
},
onSaved: (value) {
user.email = value!;
},
),
TextFormField(
decoration: InputDecoration(labelText: 'Password'),
validator: (value) {
if (value == null || value.isEmpty) {
return 'Password is required';
}
// Since we're already validating with EasyBreezyValidator, we don't need to re-validate here
return null;
},
obscureText: true,
onSaved: (value) {
user.password = value!;
},
),
ElevatedButton(
onPressed: _submitForm,
child: Text('Submit'),
),
],
),
);
}
}
3. 运行应用
将上述代码保存并运行你的Flutter应用。现在,你应该能够看到一个包含姓名、电子邮件和密码字段的表单。当你尝试提交表单时,easy_breezy_validator
将自动验证这些字段,并在验证失败时显示相应的错误消息。
请注意,由于easy_breezy_validator
已经处理了大部分验证逻辑,因此在TextFormField
的validator
回调中,我们只需要检查字段是否为空(如果需要的话)。实际的验证逻辑是在validator.validate()
方法中完成的。