正则表达式不允许为零

时间:2012-01-31 14:24:03

标签: regex validation

正则表达式不允许零

它应允许0.0000001作为值,但不应允许输入0.

我需要验证器而不是javascript

2 个答案:

答案 0 :(得分:3)

我认为您需要的只是^(?=.*[1-9])\d*\.?\d*$

但是,如果它在小数点之前,你可以得到幻想,只允许一个前导零 ^(?=.*[1-9])(?:[1-9]\d*\.?|0?\.)\d*$

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
     ControlToValidate="TextBox1" ErrorMessage="Input is not valid." 
     ValidationExpression="^(?=.*[1-9])(?:[1-9]\d*\.?|0?\.)\d*$"></asp:RegularExpressionValidator>
<asp:Button ID="Button1" runat="server" Text="Button" />

答案 1 :(得分:1)

像这样的正则表达式?

       ([1-9](\.[0-9]+)?)|(0\.[0-9]*[1-9])

看起来像工作; - )

如果你删除括号,它看起来更容易理解:

       [1-9](\.[0-9]+)? | 0\.[0-9]*[1-9]