我有不同的表单字段,并且在默认情况下,我想在触发validator
方法之前修剪表单字段的每个值。
我想要实现这一目标的原因是,如果在regex
方法被触发时在输入值上运行validator
,则由于[输入值。
例如。 input_text.hasMatch
上的下面的代码将返回false,因为在输入值的末尾使用了多余的空格字符。
alphaNumericText.hasMatch(val)
注意我不想通过修改final alphaNumericText = RegExp(r'^[a-zA-Z0-9]+$');
TextFormField(
keyboardType: TextInputType.text,
decoration: new InputDecoration(
labelText: 'Enter your nickname',
),
validator: (val) {
if (val.isEmpty == true) {
return 'Nickname is required!';
}
if (alphaNumericText.hasMatch(val) == false) {
return 'Use alphanumeric characters only in nickname.';
}
return null;
},
onSaved: (val) => this.nickname = val,
),
在输入值的末尾容纳多余的空格来实现此目的。我不想以此方式实现这一目标。
我想要的是在调用alphaNumericText RegExp
方法之前,默认情况下将窗体中所有TextField中的每个值trimmed / trim()
] >>。
我有不同的表单字段,默认情况下,在触发验证器方法之前,我希望修剪表单字段的每个值。我想要实现此目标的原因是因为如果我在...
只需添加
修剪import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(
child: Center(
child: TextFormField(
inputFormatters: [WhitelistingTextInputFormatter(RegExp(r'[a-zA-Z0-9]'))],
keyboardType: TextInputType.text,
decoration: new InputDecoration(
labelText: 'Enter your nickname',
),
validator: (val) {
if (val.isEmpty == true) {
return 'Nickname is required!';
}
return null;
},
onSaved: (val) {},
),
),
),
),
);
}
}
回调中的文本值,并将其分配回控制器。
按照@Darish的建议,这里是示例代码。