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

Flutter中如何让TextField仅允许输入数字和+符号?

解决TextField仅允许数字和+符号的问题

你当前的FilteringTextInputFormatter使用的正则[0-9]只匹配0-9的数字,所以无法输入+符号。只需要调整正则表达式,把+纳入允许的字符范围即可:

基础实现(允许任意位置的数字和+)

如果不需要限制+的出现位置,直接在正则里加入+:

TextField(
  inputFormatters: [
    FilteringTextInputFormatter.allow(
      RegExp("[0-9+]"),
    ),
  ],
),

更严谨的实现(仅允许+出现在开头,比如国际区号场景)

如果希望+只能作为开头的可选符号,避免输入多个+或者在数字中间插入+,可以使用更精准的正则:

TextField(
  inputFormatters: [
    FilteringTextInputFormatter.allow(
      RegExp("^[+]?[0-9]*"),
    ),
  ],
),

这个正则的含义:

  • ^ 匹配字符串开头
  • [+]? 允许开头有一个可选的+符号
  • [0-9]* 后续可以跟任意数量的数字

内容的提问来源于stack exchange,提问作者Esraa Hamada

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:24:19