标签: c# asp.net regex
我想只允许使用正则表达式的文本框中的数字。
有效表达式:
999999999.22 1234567890 123447899.1
表达式无效:
99999999999 9999999999.12 9999999999.1 99999999999.12 99999999999.1
我试过下面的正则表达式,这就是我想要的一切: 它允许10位数后的小数点,这是我不想要的。 小数点应仅在最多9位数后有效。
^[0-9]\\d{0,9}(\\.\\d{1,2})?%?$
答案 0 :(得分:2)
您可以将正则表达式分为三个部分:1到10位,1到9位和1位小数,1到8位和2位小数:
^\d{1,10}$|^\d{1,8}\.\d{2}$|^\d{1,9}\.\d$
(Proof)
答案 1 :(得分:0)
您可以使用alternation匹配1 - 9位数后跟1或2位小数或1 - 10位数:
^(?:\d{1,9}\.\d{1,2}|\d{1,10})$