validation - Flutter:将一系列可接受的值和多个条件设置为 TextFormField 验证器

标签 validation input dart flutter formfield

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

这让我想到了问题的后半部分:如何使用验证器属性为一个字段指定两个或多个条件?说年龄领域;输入必须在指定范围内,输入必须是整数,不能为空。我可以创建一个具有这些条件之一的工作验证器,但是我如何要求它验证同一个 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."

关于validation - Flutter:将一系列可接受的值和多个条件设置为 TextFormField 验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51087519/

相关文章:

php - AllowEmpty 与 NotEmpty

javascript - 使用 JavaScript 处理 HTML 类型 'email' 、 'url'

c++ - 如何在用户输入 ^X 之前读取输入

dart - 如何从 Overlay 中删除 OverlayEntry?

php - 哪种验证更适合实践 - 服务器端或客户端验证?

javascript - 文本输入字段中的光标位置

javascript - 查找是否在文件输入上单击了 'cancel'

dart - DART中有用于声明式ui的类似方法吗?

dart - Dart中的String和string有什么区别?

javascript - 我应该在哪里寻找根据用户输入验证表单的代码?