3

10 進数または数値 (18,3) を検証するための次の正規表現を使用していますが、ユーザーが 1 つ以上の小数点以下を入力することを禁止しています。

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Invalid" ControlToValidate="txtqty"  ValidationExpression="^[-+]?[0-9]*\.?[0-9]*([?[0-9]+)?$" ValidationGroup="save"></asp:RegularExpressionValidator>

しかし、次の例のように、ユーザーが0に等しい値を入力できないようにしたい:

0.00、0000.00、00.0、0...

4

4 に答える 4

2

問題は、1 つのバリデーターを使用して複数のタスクを実行していることだと思います

問題を分割します。

  • フォーマットを検証する

  • 特定の値を検証する

CompareValidatorあなたに加えて単純なものを使用してくださいRegularExpressionValidator

<asp:CompareValidator ErrorMessage="Value must be grater than 0" ControlToValidate="TextBox1"
    runat="server" Operator="NotEqual" Type="Double" ValueToCompare="0" />
于 2012-07-23T08:44:12.400 に答える
1

"次の正規表現を使用します。

^\d[1-9]*(\.\d+)|([0-9])$

次のパターンの値は許可されません。

00.00,0123.78 i.e value before decimal followed by 0
于 2012-07-23T09:05:14.840 に答える
0
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Invalid" ControlToValidate="txtqty" MaximumValue="99999" MinimumValue="1.0000" ValidationGroup="save"></asp:RangeValidator>      

範囲バリデーターの動作

于 2012-07-23T09:18:15.943 に答える
0

これを使用できます

^([1-9][0-9]*\.[0-9]+)|([0-9]+)$
于 2012-07-23T08:42:48.827 に答える