Flutter表单验证插件x_validators的使用
Flutter表单验证插件x_validators的使用
标题
☕ X Validators
内容
简单形式验证插件,适用于Flutter表单组件。
- 零依赖
- 可扩展
- 经过充分测试
- 开源
安装
在pubspec.yaml
文件中添加以下内容:
dependencies:
x_validators: ^1.0.7
别忘了运行flutter pub get
。
API概述
以下是x_validators
提供的各种验证规则:
规则 | 描述 |
---|---|
IsRequired() |
确保输入(去空格后)不为空。 |
Contains() |
验证输入字符串是否包含指定值。 |
EndsWith() |
确保输入字符串以特定值结尾。 |
IsEmpty() |
确保输入(去空格后)为空。 |
Match() |
验证输入是否与指定字符串匹配。 |
MaxLength() |
确保输入长度小于或等于指定的最大长度。 |
MinLength() |
确保输入长度大于或等于指定的最小长度。 |
NotContains() |
验证输入字符串是否不包含指定值。 |
StartsWith() |
确保输入字符串以特定模式开头。 |
数字验证规则
规则 | 描述 |
---|---|
IsArabicNum() |
验证输入是否为有效的阿拉伯整数。 |
IsHindiNum() |
验证输入是否为有效的印地语整数。 |
IsNumber() |
验证输入是否为有效的整数。 |
MaxValue() |
验证数值是否小于或等于指定的最大值。 |
MinValue() |
验证数值是否大于或等于指定的最小值。 |
URL验证规则
规则 | 描述 |
---|---|
IsFacebookUrl() |
验证输入是否为有效的Facebook URL。 |
IsInstagramUrl() |
验证输入是否为有效的Instagram URL。 |
IsSecureUrl() |
验证输入是否为安全URL(以https:// 开头)。 |
IsUrl() |
验证输入是否为有效的URL。 |
IsYoutubeUrl() |
验证输入是否为有效的YouTube URL。 |
电话验证规则
规则 | 描述 |
---|---|
IsEgyptianPhone() |
验证输入是否为有效的埃及电话号码。 |
ISKsaPhone() |
验证输入是否为有效的沙特阿拉伯电话号码。 |
其他验证规则
规则 | 描述 |
---|---|
IsEmail() |
验证输入是否为有效的电子邮件地址。 |
IsBool() |
验证输入是否为有效的布尔值。 |
IsIpAddress() |
验证输入是否为有效的IP地址。 |
IsPort() |
验证输入是否为有效的端口号。 |
RegExpRule() |
允许使用正则表达式作为验证规则。 |
列表验证规则
规则 | 描述 |
---|---|
ContainsAny() |
检查输入是否包含提供的列表中的任意字符串。 |
IsIn() |
检查输入是否在提供的列表中。 |
IsNotIn() |
检查输入是否不在提供的列表中。 |
NotContainsAny() |
检查输入是否不包含提供的列表中的任何项。 |
魔法验证规则
规则 | 描述 |
---|---|
IsOptional() |
允许跳过错误如果输入为null。 |
颜色验证规则
规则 | 描述 |
---|---|
IsHexColor() |
检查输入是否为有效的十六进制颜色。 |
日期验证规则
规则 | 描述 |
---|---|
IsDateAfter() |
检查日期是否在指定日期之后。 |
IsDate() |
检查输入是否为有效的日期格式。 |
IsDateMillis() |
检查输入是否为有效的时间戳(自epoch以来的毫秒)。 |
语言验证规则
规则 | 描述 |
---|---|
IsArabicChars() |
检查输入是否由阿拉伯字符组成。 |
IsEnglishChars() |
检查输入是否由英文字符组成。 |
IsLtrLanguage() |
检查语言代码是否代表一个左对齐的语言。 |
IsArabicChars() |
检查输入是否由阿拉伯字符组成。 |
IsNumbersOnly() |
检查输入是否仅由数字组成。 |
IsRTLLanguage() |
检查语言代码是否代表一个右对齐的语言。 |
使用示例
基本使用
TextFormField(
decoration: const InputDecoration(labelText: 'IsRequired'),
validator: xValidator([
IsRequired(),
]),
),
更复杂的验证
TextFormField(
decoration: const InputDecoration(labelText: 'IsRequired'),
validator: xValidator([
// 确保输入不为空,并带有自定义错误消息。
IsRequired("Field cannot be empty"),
// 确保输入至少有3个字符。
MinLength(3, "Field must be at least 3 characters"),
// 确保输入不超过20个字符。
MaxLength(20, "Field cannot exceed 20 characters"),
], onFailureCallBack: (String? input, List<TextXValidationRule> rules, TextXValidationRule failedRule) {
// 记录失败验证的信息用于进一步分析。
log("###### Validation failed for input #### : $input");
log("#### Failed rule #### : $failedRule");
}),
),
解释
第一个示例演示了基本的IsRequired
验证规则,确保输入不为空。
第二个示例使用多个规则(IsRequired
, MinLength
, MaxLength
)进行更复杂的验证。它还包括了一个onFailureCallBack
来处理验证失败的情况,记录输入和失败的规则供进一步分析。
许可证
请参阅LICENSE
作者
👨🏻💻 Eng-MahmoudBasuony
示例代码
更多关于Flutter表单验证插件x_validators的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复