gpt4 book ai didi

validation - flutter 中的字符串未删除空格

转载 作者:行者123 更新时间:2023-12-03 08:06:21 27 4
gpt4 key购买 nike

我对修剪功能有疑问。当我使用修剪时,它不起作用。当我添加空格,然后使用修剪功能,但我的验证仍然是正确的。而不是修剪必须删除所有空白。希望你理解这个问题。先感谢您。

 Widget _buildUserNameField() {
return EnsureVisibleWhenFocused(
focusNode: _emailFocusNode,
child: TudoEmailWidget(
focusNode: _emailFocusNode,
prefixIcon: Icon(Icons.email),
labelText: AppConstantsValue.appConst['login']['email']['translation'],
validator: Validators().validateEmail,
onSaved: (val) => _username = val.trim(),
),
);
}

最佳答案

仅当您保存表单(调用onSaved)时,才会调用form.save()事件。

如果要在提交表单之前验证值,只需通过以下方式将值传递给验证器:

validator: (val) => Validators().validateEmail(val)

并更新您的 validateEmail以接受该参数。

另外,如果只想删除尾随空格,请使用 trimRight()函数。

举个例子,这在我这边很完美:

class Validators {
static String validateEmail(String value) {
String pattern =
r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$';
RegExp regExp = new RegExp(pattern);
if (value == null || value.length <= 0) {
return "Email is Required";
} else if (!regExp.hasMatch(value)) {
return "Invalid Email";
} else {
return null;
}
}
}

TextFormField(
maxLines: 1,
inputFormatters: [LengthLimitingTextInputFormatter(128)],
validator: (val) => Validators.validateEmail(val.trimRight()),
onSaved: (val) => _currMember.email = val,
initialValue: _currMember.email,
),

关于validation - flutter 中的字符串未删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58162483/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com