У меня есть разные поля формы, и я хочу обрезать каждое значение поля формы по умолчанию до запуска метода validator
.
Причина, по которой я хочу это сделать, заключается в том, что если я запускаю regex
для входного значения при запуске метода validator
, регулярное выражение вернет false в input_text.hasMatch
из-за бесполезного пробела в конце входного значения.
Например. Код ниже на alphaNumericText.hasMatch(val)
вернет false из-за бесполезных символов пробела в конце входного значения.
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
, чтобы занять дополнительные пробелы в конце входного значения. Я не хочу достигать этого таким образом.
Я хочу, чтобы каждое значение во всех текстовых полях в форме было усечено / trim()
по умолчанию перед методом validator
называется.