在flutter应用程序中,默认情况下,窗体中任何TextField的Trim()输入值

问题描述 投票:0回答:3

我有不同的表单字段,并且在默认情况下,我想在触发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()] >>。

我有不同的表单字段,默认情况下,在触发验证器方法之前,我希望修剪表单字段的每个值。我想要实现此目标的原因是因为如果我在...

forms flutter input dart trim
3个回答
2
投票

只需添加


1
投票

修剪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) {}, ), ), ), ), ); } } 回调中的文本值,并将其分配回控制器。


1
投票

按照@Darish的建议,这里是示例代码。

© www.soinside.com 2019 - 2024. All rights reserved.