Flutter 文本字段仅允许用户插入给定范围内的数字

2024-02-21

我会强制只插入 1-20 之间的值。如果用户输入 2 没问题,但如果用户在 2 (21) 之后输入 1,则文本字段将不允许在 2 之后输入 1。是否有任何正则表达式。

我尝试过这样但它只允许数字

inputFormatters: [FilteringTextInputFormatter.allow(RegExp('[1-9,.,:]'))],

尝试下面的代码希望对您有帮助。在下面的代码中,如果输入的值超过 20 个,则光标将占据第一个位置。

创建一个类并声明它的最小值和最大值。

class LimitRange extends TextInputFormatter {
  LimitRange(
    this.minRange,
    this.maxRange,
  ) : assert(
          minRange < maxRange,
        );

  final int minRange;
  final int maxRange;

  @override
  TextEditingValue formatEditUpdate(
      TextEditingValue oldValue, TextEditingValue newValue) {
    var value = int.parse(newValue.text);
    if (value < minRange) {
      print('value print in between 1 - 20');
      return TextEditingValue(text: minRange.toString());
    } else if (value > maxRange) {
      print('not more 20');
      return TextEditingValue(text: maxRange.toString());
    }
    return newValue;
  }
}

您的小部件:

TextField(
   keyboardType: TextInputType.number,
   inputFormatters: [
             LengthLimitingTextInputFormatter(2),
             LimitRange(1, 20),
         ],
), 

              
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter 文本字段仅允许用户插入给定范围内的数字 的相关文章

随机推荐

  • 如何调试Go语言编写的程序?

    如何调试 Go 程序 我一直在使用Gedit Go IDE http gohelp wordpress com 但它没有调试功能 有没有办法单步执行我的代码并检查内存 或者我被打印语句困住了 我可以用吗输出调试字符串 http msdn m
  • 高度未知的 CSS 粘性页脚

    有没有办法使用 CSS 将页脚粘贴到浏览器屏幕的底部或内容后面 取决于哪个更长 without提前知道页脚的大小 现在 我在保存页脚和内容的容器中使用绝对定位 容器的最小高度为 100 但是如果我更改页脚 我发现我必须更改容器底部的填充以匹
  • 反序列化包含 java.lang.CharSequence 成员变量的类

    我有一个简单的类包含name类型变量java lang CharSequence class Person public java lang CharSequence name 当我尝试使用 GSON 库反序列化 JSON 字符串时 Per
  • Dashing 无法在 Heroku 上运行

    我正在尝试将 Dashing 部署到 Heroku 一切都在本地主机上完美运行 按照 github 页面提供的说明进行部署 这似乎与向后移植宝石有关 以下是heroku日志文件 2014 11 26T21 12 22 141799 00 0
  • 在python中将多个Excel文件(xlsx)附加在一起

    import pandas as pd import os import glob all data pd DataFrame for f in glob glob output test xlsx df pd read excel f a
  • d3:绘制累积图

    Does d3 https d3js org 有内置方法将数据集绘制为累积图吗 例如 如果 y 值为 2 4 2 2 我希望它们实际上被绘制为 2 6 8 10 d3 有办法做到这一点还是我必须遍历数据集并手动执行此操作 你可以检查http
  • git clone 在不同服务器上产生不同的权限

    在一台服务器上执行 git clone git github com blasto333 PHP Point Of Sale git 时 文件权限是 我显示一个文件 但所有文件都是这样 rw r r 1 chrism chrism 3297
  • 如何将参数传递给角度2中的POST方法

    我想将参数传递给 Angular 2 中的 POST 方法 但我使用时它不起作用params new httpParams set 但它没有起作用 我也尝试过params new httpParams set 和 headers然后它也不起
  • 无法查看.Net Core bitbucket pipelines 测试结果

    我终于设法通过以下命令在 bitbucket 管道中制作测试报告 dotnet test MyTests logger trx LogFileName test reports results xml 构建拆解 说 Found matchi
  • 查询优化和 API 限制

    我们正在跟踪许多客户的 Facebook 页面和帖子指标 根据开发人员见解控制台 见解 gt 开发人员 gt 活动和错误 该文档对 Graph API 的限制和限制有些不清楚 我们只是想确保我们对可用的资源有正确的理解 我们正在努力优化我们
  • 在 Windows 10 上禁用 NPM run dev 不编译资产并为用户提供错误通知

    我最近重新安装了 Windows 10 操作系统 运行时npm install command npm 安装正确 然而 在运行npm run watch命令或npm run dev命令 资产未编译 显示以下消息 通知被禁用原因 Disabl
  • LDAP:过滤多个UID

    我正在尝试为一个团队设置 mediawiki 并且希望仅对一组用户进行 LDAP 身份验证 我知道我可以提出组 LDAP 身份验证 但是有没有一种快捷方式可以仅过滤一组 uid 进行身份验证 您可以使用的 LDAP 搜索过滤器是 uid a
  • data.table:如何将字符向量传递给函数 get data.table 以将其内容视为列名?

    这是一个数据表 library data table DT lt data table airquality 这个例子产生了我想要的输出 DT New Ozone log Ozone New Wind log Wind 我怎样才能写一个函数
  • 在猫鼬中进行条件查找

    我有两个收藏 文章和书签 articles id 5faa889ade5e0a6326a873d3 name article 1 id 5faa889ade5e0a6326a873d name article 2 书签 id 5faa889
  • 在 eclipse Oxygen 中更改 PHP 语言库

    面向 PHP 开发人员的 Eclipse 版本 氧气释放 4 7 0 内部版本号 20170620 1800 我怎样才能改变PHP Language Library到 PHP 7 参见下面的屏幕 该项目源自先前的 eclipse 版本 已导
  • 使用过多内存从 {raster} 包中提取

    我一直在使用extract函数从raster包使用 shapefile 定义的区域从光栅文件中提取数据 但是 我对该过程现在所需的内存量存在问题 我确实有大量 shapefile 1000 光栅文件很大 1 6gb 我的流程是 shp lt
  • 如何从命令行界面将字符串作为 stdin 传递给 python 脚本

    目前 我正在使用以下命令来执行此操作 python scriptName py
  • 反转 gcc 输出的顺序

    我想颠倒 gcc 在我的程序中发现的错误的顺序 为什么 读取最后一行的第一个错误并避免滚动到第一行 我在 gcc cat tail 和 head 手册上搜索了类似 reverse 的命令 但没有结果 所以 我想要一个以相反顺序打印标准输入的
  • 带有 RVM 的 Ruby 1.9.3 IRB 中的 Unicode 字符

    Update 我发现几乎完全正确类似的问题 https stackoverflow com q 4590725 80851 但它的先决条件略有不同 因此没有多大帮助 Given MacOS 狮子 10 7 3 RVM 1 14 2 红宝石
  • Flutter 文本字段仅允许用户插入给定范围内的数字

    我会强制只插入 1 20 之间的值 如果用户输入 2 没问题 但如果用户在 2 21 之后输入 1 则文本字段将不允许在 2 之后输入 1 是否有任何正则表达式 我尝试过这样但它只允许数字 inputFormatters Filtering