白色 space 没有从 flutter 中的字符串中删除
white space is not removing from string in flutter
我对 trim 函数有疑问。当我使用 trim 时,它不起作用。当我添加白色 space 然后使用 trim 函数时,但我的验证仍然是正确的。而不是 trim 必须删除所有白色 space。希望你理解这个问题。提前谢谢你。
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,
),
我对 trim 函数有疑问。当我使用 trim 时,它不起作用。当我添加白色 space 然后使用 trim 函数时,但我的验证仍然是正确的。而不是 trim 必须删除所有白色 space。希望你理解这个问题。提前谢谢你。
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,
),