I want my TextFormField to accept a string like ABCDE1234F
. I tested the regex online and it works. For some reason, the FextFormField doesn't allow any kind of input when I use the following code.
TextFormField(
inputFormatters: [
LengthLimitingTextInputFormatter(10),
FilteringTextInputFormatter.allow(RegExp(r'[A-Z]{5}[0-9]{4}[A-Z]{1}')),
],
validator: (value) {
if (value.isEmpty) {
return 'Please enter some text';
}
return null;
},
decoration: InputDecoration(
border: InputBorder.none,
labelText: 'PAN Number',
),
)
A valid string should have 5 uppercase letters, followed by 4 digits and a last uppercase letter.
Edit:
Playing around more with it, I realized that the issue is in {}
. When I just allow digits or numbers without limiting the number with {}
, it works. But I can't limit seem to limit number of characters.
question from:
https://stackoverflow.com/questions/66058512/flutter-textinputformatter-not-allowing-regex 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…