class UsNumberTextInputFormatter extends TextInputFormatter {
RegExp regExp;
UsNumberTextInputFormatter({int digitsCount = 2}) {
String string =
r'^(([0])|([1-9][0-9]*)|(([0]\.\d{0,count}|[1-9][0-9]*\.\d{0,count})))$';
string = string.replaceAll(RegExp(r'count'), '$digitsCount');
regExp = RegExp(string);
}
@override
TextEditingValue formatEditUpdate(
TextEditingValue oldValue, TextEditingValue newValue) {
return oldValue.text.length > newValue.text.length ||
regExp.hasMatch(newValue.text)
? newValue
: oldValue;
}
}
其实在android代码里实现这个功能可以完全不依靠正则就能实现。