c# - 使用正则表达式不允许 10 位数字后有小数点

标签 c# asp.net regex

我想使用正则表达式仅允许文本框中包含数字。

  • 最多允许 10 位数字。
  • 小数点后最多 2 位数字。
  • 10 位数字后不允许使用小数点。

有效表达式:

999999999.22
1234567890
123447899.1

无效表达式:

99999999999
9999999999.12
9999999999.1
99999999999.12
99999999999.1

我尝试了下面的正则表达式,它满足了我想要的所有期望: 它允许 10 位数字后的小数点,这是我不想要的。 小数点最多只能在 9 位数字之后有效。

^[0-9]\\d{0,9}(\\.\\d{1,2})?%?$

最佳答案

您可以将正则表达式分为三部分:1 到 10 位数字、1 到 9 位数字和 1 位小数以及 1 到 8 位数字和 2 位小数:

^\d{1,10}$|^\d{1,8}\.\d{2}$|^\d{1,9}\.\d$

( Proof )

关于c# - 使用正则表达式不允许 10 位数字后有小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49549518/

相关文章:

javascript - 用于 url 验证的正则表达式(未终止的括号错误)

c# - MongoDB:可以设置ID吗?

c# - ASP.NET WebApi - 一个 Controller 中的多个 GET 操作

asp.net - SQL Server 数据库在触发器执行时挂起

asp.net - 使用 session 变量实现安全性,它是如何不安全的

正则表达式获取标签内的文本

c# - 如何判断 DXVA 解码器是否已退回到软件解码

c# - 计算9 :00 AM -- 6:00 PM之间的时间

c# - Twilio 休息 API 错误代码 21612

java - 正则表达式检索字符串中不包含字符串的部分