3

少なくとも 1 桁の数字と最大 5 桁の数字を受け入れる正規表現が必要です。ユーザーが「00」、「000」、「0000」、「00000」のようにゼロを入力すると、式はそのような入力を拒否する必要があります。現在、^[0-9]{1,5}$ を使用しています。

4

5 に答える 5

3
^(?=.*[1-9].*)[0-9]{1,5}$

先読みアサーションを使用して、ゼロ以外の数字が少なくとも 1 つあることを確認します。1 つある場合、式の残りの部分は、1 ~ 5 桁の場合にのみ一致します。両方の条件を満たす必要があります。そうでない場合、式は一致しません。

ただし、数字の文字列 (郵便番号など) とは対照的に、数値を照合しようとしている場合は、正規表現ではなく数値で比較する方がおそらく良いでしょう。

于 2012-12-12T04:33:05.843 に答える
3

ユーザーの入力が先頭にゼロが付いた 5 桁の数字としてフォーマットされていることを確認したい場合は、次の正規表現が機能します。

^[0-9]{5}(?<!00000)$

これは、負の後読みを使用して、入力された文字列が 5 つのゼロではないことを確認します。

于 2012-12-11T11:31:47.170 に答える
1

良くないが機能している:

1から99999まで:[1-9][0-9]{0,4}

01から09999まで:0[1-9][0-9]{0,3}

001から00999まで:00[1-9][0-9]{0,2}

0001から00099まで:000[1-9][0-9]{0,1}

00001から00009まで:0000[1-9]

そして、これらすべてをまとめます。

^(0[1-9][0-9]{0,3}|00[1-9][0-9]{0,2}|000[1-9][0-9]{0,1}|0000[1-9]|[1-9][0-9]{0,4})$

編集:更新。

于 2012-12-11T10:53:53.867 に答える
1

本当に正規表現である必要がありますか?かどうかを確認してみませんか0 < value && value <=99999

于 2012-12-11T11:17:08.383 に答える
0

わかりました。解決策は次のとおりです: ^[1-9][0-9]{0,4}$

1 から 99999 までのすべての数を取る

単純な RangeValidator を使用しないのはなぜですか。

<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Value must be greater than zero." ControlToValidate="tbQty" MinimumValue="1" MaximumValue="99999" Type="Integer"></asp:RangeValidator>
于 2012-12-11T10:49:06.723 に答える