dart_validator 
dart数据校验工具, 适用于表单数据校验, Map数据校验
// 引入
import 'package:dart_validator/dart_validator.dart';
// 定义规则
final Map<String, List<Schema>> descriptor = {
'name': [
Schema(
type: SchemaType.required,
message: '名称不能为空',
),
],
'age': [
Schema(
type: SchemaType.required,
message: '年龄不能为空',
),
],
'sex': [
Schema(
type: SchemaType.required,
message: '性别不能为空',
),
],
'phone': [
Schema(
type: SchemaType.required,
message: '手机号不能为空',
),
Schema(
type: SchemaType.phone,
message: '手机号格式错误',
),
],
};
// 实例化
final validator = Validator(descriptor);
// 数据
final data = {
'name': '123',
'age': '13',
'sex': '男',
'phone': '15818440278',
};
// 调用校验
validator.validate(
data,
// 失败
fail: (message, key) {
print('$key: $message');
},
// 成功
success: () {
print('校验成功');
}
);
import 'package:dart_validator/dart_validator.dart';
// 定义规则
final Map<String, List<Schema>> descriptor = {
'name': [
Schema(
validator: (key, value, callback) {
// 定时器模拟请求接口
Future.delayed(Duration(milliseconds: 2000), () {
callback(value == '张三' ? '输入的名称不是张三' : null);
});
}
),
],
};
// 实例化
final validator = Validator(descriptor);
// 数据
final data = {
'name': '李四',
};
// 调用校验
validator.validate(
data,
// 失败
fail: (message, key) {
print('$key: $message');
},
// 成功
success: () {
print('校验成功');
}
);
Schema
中的validator
必须调用callback
函数, 如果数据校验失败传入提示文字, 成功则传入null