c# - 带逗号的百分比正则表达式

标签 c# regex asp.net-mvc-3 validation data-annotations

我有这个用于 C# ASP.NET MVC3 模型验证的正则表达式:

[RegularExpression(@"[0-9]*\,?[0-9]?[0-9]")]

这适用于几乎所有情况,除非数字大于 100。 任何大于 100 的数字都会显示错误。 我已经尝试过使用 [Range],但它不适用于逗号。

Valid: 0 / 0,0 / 0,00 - 100 / 100,0 / 100,00.

Invalid (Number > 100).

最佳答案

不确定零是否只是末尾的可选数字,但是

 #  (?:100(?:,0{1,2})?|[0-9]{1,2}(?:,[0-9]{1,2})?)

 (?:
      100 
      (?: , 0{1,2} )?
   |  
      [0-9]{1,2} 
      (?: , [0-9]{1,2} )?
 )

零最后的唯一选择

 #  (?:100|[0-9]{1,2})(?:,0{1,2})?

 (?:
      100 
   |  [0-9]{1,2} 
 )
 (?: , 0{1,2} )?

并且,除了零本身之外没有前导零的排列

 # (?:100(?:,0{1,2})?|(?:0|[1-9][0-9]?)(?:,[0-9]{1,2})?) 

 (?:
      100 
      (?: , 0{1,2} )?
   |  
      (?:
           0
        |  
           [1-9] [0-9]? 
      )
      (?: , [0-9]{1,2} )?
 )


 # (?:100|0|[1-9][0-9])(?:,0{1,2})? 

 (?:
      100 
   |  
      0
   |  
      [1-9] [0-9] 
 )
 (?: , 0{1,2} )?

关于c# - 带逗号的百分比正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20250426/

相关文章:

c# - 打开 epplus 生成的文件时出错

C# 控件超出父边界?

特定长度的 RegEX 字符串

html - 如何将 "<%: x > y ? a : b %>"之类的 MVC 2.0 Html 代码替换为 MVC 3.0 cshtml Razor 代码?

c# - 使用NEST(ElasticSearch)搜索嵌套数组

c# - 将窗口停靠为工具栏

c++ - boost 正则表达式子字符串匹配

正则表达式 : How to find lines that don't end with some pattern?

jquery - 在 mvc3 jquery 中将下拉选定的值获取到文本框

javascript - 如何将简单的 Javascript 数组绑定(bind)到 MVC3 Controller 操作方法?