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

Validation 颤振:为TextFormField验证器设置一系列可接受的值和多个条件,validation,input,dart,flutter,formfield,Validation,Input,Dart,Flutter,Formfield,我使用许多TextFormFields作为数字输入字段,希望确保用户只能输入一个可接受范围内的数字。例如,年龄字段应该只接受18到100之间的数字,并且只接受整数而不是小数 这就引出了问题的第二部分:如何使用validator属性为一个字段指定两个或多个条件?比如说年龄场;输入必须在指定范围内,输入必须是整数,输入不得为空。我可以创建一个工作的验证器,比如说,其中一个条件,但是我如何要求它在同一个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,
),

如果将值解析为数字,则不需要使用regexp

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

能否添加一些代码来演示您尝试了什么(例如一个条件)以及您尝试完成什么(其他条件)。要说出你需要什么信息有点困难,因为更多的条件与一个条件确实不同。通常您只需将它们与
|
(或)或
&&
(和)组合即可。很高兴听到:)
"Age cannot contain characters other than numbers."