我有这个用于 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/