flutter限制输入框TextField输入两位小数的数字
2020-07-03 本文已影响0人
碧桃鹦鹉
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代码里实现这个功能可以完全不依靠正则就能实现。