在开发过程中,涉及到支付或者提现等功能,我们都会对输入框里的内容进行处理,判断输入的内容是否符合金额形式,如果不符合我们要根据输入的内容作出相应的判断,例如禁止继续输入或弹出提示框告诉金额形式输入有误等。
下面就是一位博主写的方法,大家可以参考,如果对原文感兴趣可以点击flutter-TextField文本输入框 限制 数字键盘、输入小数点后两位看一下。
首先就是最关键的输入框的内容限制,例如只能输入数字和小数点,所以这里坐着使用了正则表达式进行可非常好的限制。
FilteringTextInputFormatter(RegExp("[0-9.]"), allow: true),
输入内容进行了件大的过滤,剩下就是具体的内容的 判断和限制,例如:.000、1.0000等都是不被允许的。
所以就有了下面的处理
import 'package:flutter/services.dart';
class CustomTextFieldFormatter extends TextInputFormatter {
static const defaultDouble = 0.001;
///允许的小数位数,-1代表不限制位数,默认为-1
int digit;
//重写构造方法,可以对位数进行直接限制
CustomTextFieldFormatter({this.digit = -1});
static double strToFloat(String str, [double defaultValue