You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为指定数字规则创建FilteringTextInputFormatter正则表达式?

解决方案

核心规则梳理

需要满足的格式要求:

  • 整数部分必须为 2-3位数字(禁止1位或0位)
  • 可选小数点,小数点后最多允许 2位数字(可输入1位或2位,也可以不带小数点)

正确的正则表达式

替换原正则为以下表达式,它既支持合法的最终输入状态,也允许输入过程中的临时有效状态(比如先输入单个数字,再补全到2位),同时直接禁止无效的输入操作(比如单个数字后加小数点):

RegExp(r'^\d{1,3}$|^\d{2,3}\.\d{0,2}$')

完整TextField代码

TextField(
  keyboardType: TextInputType.number,
  inputFormatters: [
    FilteringTextInputFormatter.allow(
      RegExp(r'^\d{1,3}$|^\d{2,3}\.\d{0,2}$'),
    ),
  ],
)

正则说明

  • ^\d{1,3}$:允许输入1-3位纯数字(支持输入过程中从1位补到2-3位的临时状态)
  • ^\d{2,3}\.\d{0,2}$:允许2-3位数字后接小数点,小数点后可输入0-2位数字(包含只输入小数点但还没输小数位的临时状态,以及完成的小数格式)

设置后会直接禁止以下无效操作:

  • 直接输入小数点(.1、.12)
  • 单个数字后输入小数点(1.、1.1、1.12)
  • 整数部分超过3位数字

内容的提问来源于stack exchange,提问作者Shubham Hande

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:40:18