inputNumCheck static method
InputStatus
inputNumCheck(
- TextEditingController controller,
- String inputValue, {
- dynamic maxInput,
- bool enableInputDecimal = true,
- int maxLengthInteger = 5,
- int maxLengthDecimal = 3,
处理输入数字的校验
Implementation
static InputStatus inputNumCheck(TextEditingController controller, String inputValue,
{dynamic maxInput, bool enableInputDecimal = true, int maxLengthInteger = 5, int maxLengthDecimal = 3}) {
if (inputValue == '.') {
if (enableInputDecimal && controller.text.isNotEmpty && !controller.text.contains('.')) {
controller.text = "${controller.text}.";
controller.selection = TextSelection.fromPosition(TextPosition(offset: controller.text.length));
return InputStatus.SUCCESS;
}
return InputStatus.FAILURE;
}
if (inputValue == '0' && controller.text == '0') {
return InputStatus.FAILURE;
}
String oldText = controller.text;
String newText = (controller.text == '0' && inputValue != '.') ? "$inputValue" : "$oldText$inputValue";
if (maxInput != null && NP.minus(newText, maxInput) > 0) {
return InputStatus.INPUTOUTMAX;
}
List<String> splitList = newText.split('.');
if (splitList[0].length > maxLengthInteger) {
return InputStatus.FAILURE;
}
if (splitList.length > 1 && splitList[1].length > maxLengthDecimal) {
return InputStatus.FAILURE;
}
controller.text = newText;
controller.selection = TextSelection.fromPosition(TextPosition(offset: controller.text.length));
return InputStatus.SUCCESS;
}