颤振:为 TextFormField 验证器设置一系列可接受的值和多个条件



我使用许多TextFormFields作为数字输入字段,并希望确保用户只能输入可接受的数字范围内的值。例如,年龄字段应仅接受 18 到 100 之间的数字,并且仅接受整数而不是小数。

这就引出了我问题的后半部分:如何使用 validator 属性为一个字段指定两个或多个条件?说年龄字段;输入必须在指定范围内,输入必须是整数,输入不得为空。例如,我能够使用这些条件之一创建一个有效的验证器,但是我如何要求它在同一 TextFormField 中验证多个内容?

如果我可以提供任何其他信息来帮助您回答,请告诉我,我认为代码示例没有用,因为该问题不具体。

编辑:已经(在大多数情况下(弄清楚了多个条件问题,仍然不知道创建接受值的数字范围。针对我的年龄字段的特定示例解决方案将是一个很大的帮助。 示例代码:

...
String validateAge(String value){
String pattern = r'(^[0-9]*$)';
RegExp regExp = new RegExp(pattern);
if (value.length == 0){
return "Age is required.";
} else if (!regExp.hasMatch(value)){
return "Age cannot contain characters other than numbers.";
}
}
...
new TextFormField(
decoration: InputDecoration(
hintText: "Age"
),
validator: validateAge,
autoValidate: true,
),

如果你将值解析为一个数字,那么你不需要使用正则表达式

var numValue = int.tryParse(value);
if(numValue >= 5 && numValue < 100) {
return true;
} 

例如,您可以检查value.length > 0numValue > 0是否知道字符串不是有效的数字

"Age cannot contain characters other than numbers."

最新更新