【问题标题】:Input only even numbers in textField Flutter在 textField Flutter 中只输入偶数
【发布时间】:2021-10-06 13:51:44
【问题描述】:

那么,在 TextFormField 中用户只能插入偶数吗?现在他们无法输入例如 12,这就是问题所在。

                    child: TextFormField(
                      inputFormatters: [
                        FilteringTextInputFormatter.deny(RegExp("[1,3,5,7,9]"))
                      ],
                      keyboardType: TextInputType.number,
                    ),

【问题讨论】:

  • 为什么他们不能输入“13”是个问题?
  • 因为我想让他们只输入偶数而 13 不是偶数。
  • FilteringTextInputFormatter.deny(RegExp("[3,5,7,9]")) 行使他们无法插入 3,5,7 和 9
  • 是的,你不能在不输入“3”的情况下输入“13”。所以有什么问题?除了忘记“1”也是奇数之外,您的代码还可以工作
  • 哦,抱歉 xd 我的意思是 12,我是笨蛋.. 他们不能输入 12,这就是问题所在

标签: flutter input keyboard numbers textfield


【解决方案1】:

只看最后一位数就可以判断奇数是偶数还是奇数。所以奇数运行的正则表达式可能是:

"$\s*(\d*[13579]\s*,\s*)*\d*[13579]$"

使用正则表达式如下

child: TextFormField(
                      inputFormatters: [
                        FilteringTextInputFormatter.deny(RegExp("$\s*(\d*[13579]\s*,\s*)*\d*[13579]$"))
                      ],
                      keyboardType: TextInputType.number,
                    ),

用于拒绝偶数使用下面的正则表达式

"$\s*(\d*[02468]\s*,\s*)*\d*[02468]$"

【讨论】:

  • 它说它需要一个标识符,我猜这段代码有错误
  • 我尝试了以下方法:"^\\s*(\\d*[13579]\\s*,\\s*)*\\d*[13579]\$"。现在如果我想插入 12,它会在按下 1 后重置输入。
猜你喜欢
  • 2019-09-02
  • 2022-12-04
  • 1970-01-01
  • 2021-04-01
  • 2020-10-09
  • 1970-01-01
  • 2022-08-16
  • 2021-11-18
  • 1970-01-01
相关资源
最近更新 更多