.NETの10進数型の数値を検証するために使用している正規表現があります。私の正規表現は0.5で動作しますが、.5(先行ゼロなし)では動作しません。私はこの正規表現を作った人ではなく、私はそれらをよく知らないので、私はここで尋ねると思った。数値正規表現ヘルプ
ありがとうございます。
現在の正規表現
[-+]?[0-9]*\.?[0-9]+
(EDIT - これは、この正規表現によるものでしたか?[ - +] [0-9] * [0-9]私は+最後に欠けていました。? ) この番号で検証が失敗します 450.000000000000
この番号で検証は失敗します。 .450
私が扱っているSQLデータベースの数値は数値(28,12)と定義されています。そのため、ビジネスロジックでは0〜9,999.99の値が適用されますが。
したがって、私の検証を使用して入れたデータは、定義されたビジネスルールでは機能しますが、別のシステムによって供給されているため、データベースに既に存在するデータを考慮する必要があります。
編集:私の元の正規表現は機能しますが、必要な容量ではありません。私は現在、私のユーザーは、この上無効な番号のメッセージを取得
.5
を検証するために、この番号が必要です。彼らは、私は、その10進数で始まり入力した番号に0を付加するためにいくつかのJavaScriptを追加することができたと
0.5
を入力することで、これを回避することができますが、私にはそれがハッキングされ、私はむしろしたいですそうしないでください。
元の正規表現は.5でも完全に動作するようです。それを戻すことはできません。 –
この正規表現テストサイトhttp://regexhero.net/tester/に基づいて、私の正規表現には何も問題はありません。むしろ、Microsoftの正規表現属性データアノテーションに問題があるようです。私はこの質問をMVC3検証の下で再掲載するつもりです。みんな、ありがとう。 –