Flutter Phone Number Formatter
09-08-2020Flutter TextFormField Phone Number Formatter
Converts phone number00000000
to (000) 000 0000
class PhoneNumberFormatter extends TextInputFormatter { PhoneNumberFormatter(); @override TextEditingValue formatEditUpdate( TextEditingValue oldValue, TextEditingValue newValue, ) { if (!oldValue.text.contains("(") && oldValue.text.length >= 10 && newValue.text.length != oldValue.text.length) { return TextEditingValue( text: "", selection: TextSelection.collapsed(offset: 0), ); } if(oldValue.text.length>newValue.text.length){ return TextEditingValue( text: newValue.text.toString(), selection: TextSelection.collapsed(offset: newValue.text.length), ); } var newText = newValue.text; if (newText.length == 1) newText ="(" + newText; if (newText.length == 4) newText = newText + ") "; if (newText.length == 9) newText = newText + " "; return TextEditingValue( text: newText.toString(), selection: TextSelection.collapsed(offset: newText.length), ); } }
Usage:
TextFormField(inputFormatters: [PhoneNumberFormatter()])