文本框中的十进制正则表达式

时间:2014-01-28 10:47:55

标签: c# asp.net regex

我在网页上有一个文本框。我希望它只接受十进制前最多15位和后面4位的小数。例如123456789012345.1234,但也允许.121等......

这是我目前正在使用的允许所有不同的十进制变体

  

[+ - ] \ d +(\ d。*)|?\ d +

要添加允许的最大数字,我正在考虑这个

的内容
  

[+ - ]?\ d {0,15} +(。\ d {0,4})?|。\ d {0,4} +

但是当我尝试使用它时,我收到错误parsing "[+-]?\d{0,15}+(\.\d{0,4})?|\.\d{0,4}+" - Nested quantifier +.

1 个答案:

答案 0 :(得分:4)

{n,m}是量词。因此,你不应该在它之后添加另一个量词(+)。

尝试:

[+-]?\d{0,15}(\.\d{0,4})?|\.\d{0,4}

您的期间应该被转移。


正如旁注,{n,m}+是某些正则表达式引擎中的有效量词,它表示占有行为。