I want to restrict the TextFormField to only accept numbers separated by commas and sometimes with dashes but I don’t want them to come consecutive to each other and also don’t want the same character consecutive.
Ex:-
1,3-4,9-11is correct1,,3--4,9-11is wrong1,-3-4,9-11is wrong1-,3-4,9-11is wrong
To restrict things to only numbers, commas and dashes I’m using:-
FilteringTextInputFormatter(
RegExp("[0-9,-]"),
allow: true
)
But it is not restricting the consecutive behavior as shown in the wrong behavior in the examples.
So, how can I restrict my TextFormField to the correct behavior represented in the examples?
Thank you.
>Solution :
If you want to validate on submit, you might write the pattern as:
^[0-9]+(?:[,-][0-9]+)*$
If a negative lookahead is supported, you an exclude matching 2 times one of - or , while validating on typing.
Note that this will allow , or - at the end:
^(?!.*[,-][,-])[0-9,-]*