使用正则表达式检查文本框不允许小数

2024-01-07

我想创建一个 TextChanged 事件来检查输入文本是否符合特定条件,如果不符合则删除最后输入的字符。在本例中,标准是数字、1 位小数和 1 位分数。

我正在测试仅用于数字和小数的正则表达式,并遇到了问题。我尝试了几种不同的表达式(我不擅长编写自己的表达式,因此它们是从各种其他堆栈溢出问题中选取的),并且每次的结果都是相同的。它可以很好地接受数字,但不接受小数。任何帮助将不胜感激!

        string isNumber = @"^\d{1,9}(\.\d{1,9})?$";

        private void TextBox_TextChanged(object sender, EventArgs e)
        {
            TextBox text = (TextBox)sender;

            Match match = Regex.Match(text.Text, isNumber);

            if (!match.Success)
            {
                if (text.Text.Length > 1)
                    text.Text = text.Text.Substring(0, text.Text.Length - 1);
                else
                    text.Text = "";

                text.Select(text.Text.Length, 0); //set cursor to the end 
                                                  //of the string
            }
        }

我认为问题在于您试图在用户输入时逐个字符地验证数字,但如果该值不是无效值,则不可能输入有效的十进制数字暂时地.

考虑当用户键入值时会发生什么1.2:

  1. 用户输入字符1.
  2. 由于文本框的值发生更改,因此会触发验证。
  3. 1是有效的小数,因此验证通过。
  4. 用户继续输入,添加小数点字符.
  5. 由于文本框的值发生更改,验证再次触发。
  6. 1.根据正则表达式,这不是有效的小数,因此最后一个字符被删除。
  7. 文本框的值现在又回到了1.
  8. 用户会感到沮丧。转到步骤 4。

如您所见,无法输入小数点。但是,如果您尝试更改正则表达式以允许存在小数点而没有后续数字,那么如果用户在键入小数点后停止然后提交表单,则可能会得到无效值。

所以重点是,使用逐个字符的验证方案不适用于小数。更好的方法是允许用户在框中输入他们想要的任何内容,然后在用户完成输入后进行验证。您可以通过验证文本框何时失去焦点或何时提交表单来完成此操作。

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

使用正则表达式检查文本框不允许小数 的相关文章

  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • JavaScript RegEx:不同的结果:使用字符串和使用正则表达式“文字”构建模式?

    使用 RegExp 文字与字符串之间有什么区别吗 http jsfiddle net yMMrk http jsfiddle net yMMrk String prototype lastIndexOf function pattern p
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 禁用 notInArray 验证器 Zend Framework 2

    有没有办法在 Zend Framework 2 中禁用 notInArray Validator 互联网上的所有信息都显示如何在 Zend Framework 1 中禁用 notInArray Validator 例如以这种方式 如果您根本
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 如何使用 XPath 正则表达式匹配 URL

    需要 XPath 方面的帮助 我有这样一个XML
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 如何使用 Promise 创建 Jest 模拟函数?

    我试图通过创建这个 Promise 函数来模拟 axios 模块 mocks axios js export default function axios return new Promise resolve gt resolve data
  • 在 Rails 中执行长 PLSQL 过程时,如何解决 heroku 的 30 秒超时问题?

    在 Rails Web 应用程序中 我需要开发一个可以启动 PLSQL 过程的页面 我最终通过本教程开发了它 如何通过单击视图中的按钮来调用 Rails 中的 PLSQL 函数 https stackoverflow com questio
  • Spark View Engine 中的 ${...} 和 !{...} 有什么区别?

    有什么区别 and 在 Spark 视图引擎中 两者之间可能确实存在明显的区别 但我认为它们可以互换使用 一种对输出进行编码 另一种不编码 我在小组中看到过一些讨论 如果这是真的 那么这是做什么的 H Model Name 另外在配置中设置
  • 数据库加密还是应用程序级加密?

    当您需要存储 CC 或 SSN 等敏感数据时 您是否 1 在应用程序中构建您自己的加密例程 在配置文件中的某个位置定义密钥 然后手动加密 解密发送到数据库的数据 2 使用内置的数据库功能将所有问题推送到数据库 我认为大多数供应商称之为透明数
  • WPF:自定义区域设置

    我今天刚刚发现 WPF 将忽略 CultureInfo CurrentCulture 并始终使用 en US 我也找到了一个很棒的答案here https stackoverflow com questions 2764615 wpf st
  • Android 数据绑定与自定义适配器

    我正在尝试使用Android 的数据绑定功能 http developer android com tools data binding guide html使用自定义适配器和 ListView 我在覆盖自定义适配器时遇到问题getView
  • 如何在 bash for 循环中执行 psql 命令

    我想在 bash 脚本中执行 psql 语句并将结果输出到文件中 我下面的代码可以按需要工作 bin bash query select from mytable psql lt
  • 如何将 FlexBox 项目扩展到全屏而不移动其他 Flex 项目?

    我有一个盒子的弹性盒子布局 单击这些框时 它们会扩展为全屏 问题是 当盒子展开时 它会移动其他弹性元素 导致动画看起来跳跃 弹性布局还可以防止展开的框接触屏幕顶部 这是一个小提琴 向您展示我在说什么 fiddle https jsfiddl
  • WPF 通过覆盖方法更新 UI 不起作用

    我正在尝试从 ViewModel 更新 WPF UI 风景
  • 什么是 JSP 上下文?

    我想知道这个 java 对象到底是什么以及它的主要用途是什么 我看过java文档 但这让我更困惑 它是否有会话 请求 应用程序等关系范围 JspContext JspContext 令人困惑 因为它似乎没有做任何 ServletContex
  • 如何在Python中反转字典(其值是列表)? [复制]

    这个问题在这里已经有答案了 我想编写一个函数 它接收字典作为输入参数并返回输入字典的反向值 其中原始字典的值用作返回字典的键 原始字典的键用作返回字典的值返回的字典解释如下 dict Accurate exact precise exact
  • 如何使用 septice 在明火中创建持久房间?

    我正在使用以下内容iq在 openfire 中创建持久房间的消息 var configiq iq to chatObj getActiveChatRoomName chatObj groupChatService type set c x
  • 使用js将字符串附加到图像src

    我有一个页面 里面有 img src images product whatever image jpg alt 我希望在加载页面时 将字符串 Action thumbnail 附加到 src 的值 使其成为src images produ
  • 为什么stream api不是为异常处理而设计的?

    Fixtures BiConsumer
  • 使用 Python 读取 UTF8 CSV 文件

    我正在尝试使用 Python 读取带有重音字符的 CSV 文件 仅限法语和 或西班牙语字符 基于 csvreader 的 Python 2 5 文档 http docs python org library csv html http do
  • 使用光流进行特征跟踪

    我找到了一个类似的问题 https stackoverflow com questions 9701276 opencv tracking using optical flow 9702540 comment13031247 9702540
  • 将材质图标与样式组件一起使用

    刚刚开始使用样式组件 有没有办法设置第三方图标 例如 Material Design Icon 的样式 这是我到目前为止的代码 但显然它不起作用 相关代码位于内容组件下方 Thanks const MaterialIcon props gt
  • localStorage html5 功能在 Samsung Android 设备上的 WebView 中不起作用

    我有一个用 WebView 包装的 html5 应用程序 为了在页面之间存储和检索用户输入值 我使用本地存储html5 功能 它在我的 Nexus 4 Android 4 4 4 上运行良好 但在 Samsung Galaxy Tab 2
  • 罗马尼亚语区域设置

    经过谷歌搜索一段时间后 我发现 Android 2 3 版本确实支持它 但我没有找到它支持的最低版本 如果 Android 2 2 版本不支持罗马尼亚语那么有什么替代方案 感谢您的关注 这是已解决的类似问题 Android 支持的语言 区域
  • 使用正则表达式检查文本框不允许小数

    我想创建一个 TextChanged 事件来检查输入文本是否符合特定条件 如果不符合则删除最后输入的字符 在本例中 标准是数字 1 位小数和 1 位分数 我正在测试仅用于数字和小数的正则表达式 并遇到了问题 我尝试了几种不同的表达式 我不擅