flutter限制输入框TextField输入两位小数的数字

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代码里实现这个功能可以完全不依靠正则就能实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容