регулярное выражение не разрешать ноль - PullRequest
1 голос
/ 31 января 2012

регулярное выражение не допускает ноль

это должно позволить 0,0000001 в качестве значения, но не должно позволять вводить 0.

Мне нужен валидатор, а не JavaScript

Ответы [ 2 ]

4 голосов
/ 31 января 2012

Я думаю, все, что вам нужно, это ^(?=.*[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 голос
/ 31 января 2012

регулярное выражение, как это?

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

похоже на работу; -)

если убрать брекеты, это выглядит более понятным:

       [1-9](\.[0-9]+)? | 0\.[0-9]*[1-9]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...