validation - 空白没有从颤动的字符串中删除
问题描述
我有一个关于修剪功能的问题。当我使用修剪时,它不起作用。当我添加空格然后使用修剪功能但我的验证仍然是正确的。而不是修剪必须删除所有空白。希望你明白这个问题。先感谢您。
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,
),
推荐阅读
- python - Django modelform 没有插入数据
- c++ - 调用非静态函数作为谓词?
- events - Roblox 触摸事件仅适用于脚
- java - Java:如何查看字符串池中存储了多少字符串?
- python - mrjob add_file_arg() csv 文件
- c - 为什么 main char **argv 的参数是 c 中的字符串数组
- python - 我可以在 django-tables2 中制作一个二维表吗?
- python - 什么是 AttributeError: 'str' object has no attribute 'length_$rn$' on line 4 错误?
- sql - 在 SQL 中的视图上触发 DML 操作
- python-3.x - 尝试构建一个返回中位数的函数,不断收到“索引浮点数而不是整数”错误