2016-11-02 1 views
0

を保存するから私を防止私はValidator-正規表現バリデータとラッド数値テキストボックスは

次の正規表現を持って
<asp:RegularExpressionValidator ID="targetNumValidator" runat="server" Display="Dynamic" ValidationExpression="/^\d{0,7}(\.\d{0,2})?$/" ControlToValidate="txtTargetNum"></asp:RegularExpressionValidator> 

次ラッド数値テキストボックス -

<telerik:RadNumericTextBox ID="txtTargetNum" MaxLength="12" NumberFormat-DecimalDigits="2" runat="server"> 
</telerik:RadNumericTextBox> 

で私は制限しようとしていますユーザーは常に12桁の数字を入力する必要があります。

良い例 -

123.00 
123.12 
1234567891.00 
12345.34 

悪い例 -

123.222 
12345678912.00 

私は正常にこの目標を達成するために、私の正規表現を信じて、私は私の保存を通じて価値を保存するために行くたびボタンは、正規表現のために停止します。フィールドを空白のままにしておくと、保存ボタンが正常に機能するので、正規表現が原因で発生していることがわかります。

+0

をused-式がなぜ '1234567891.00'悪い例ですか? – harristyle

+0

おっとり、数字を忘れました。私は例を更新しました。ありがとう – user2461876

+2

これはいかがですか? ''^\ d {1,10} \。\ d {2} $ '](https://regex101.com/r/1vrOT7/3)、' {、} 'は文字乗数を表します。あなたは '\ d {1,10}'で1〜10回出現した後にエスケープされたドット '\ .'とそれに続く他の数字を表示する必要がありましたが、それゆえ '\ d {2}'となります。 – harristyle

答えて

0

私はharristyleの正規表現を試しましたが、私はそれに少し微調整を加えてやってしまいました。 1234などの数字を入力した場合、自動的に小数点と2つのゼロが追加されたラジアル数値テキストボックスのため、テキストボックスに1234.00が表示されます。私は小数点以下桁とオプションの文字列の残りの部分を作らなければならなかった。私がデータを保存するとき、10進数値はどちらかの方法で含まれています。

これは私が

^\d{1,10}\.?\d{2}$