質問
お金の価値を維持するために asp:TextBox
があります。つまり、「1000」、「1000,0」、および「1000,00」です(ロシア標準のため、コンマは区切り文字です)。
適切な asp:RegularExpressionValidator
に使用する ValidationExpression
は何ですか?
\ d + \、\ d {0,2}
を試しましたが、小数点以下の数字を使用できません。 「1000」だけです。
解決
\d+(,\d{1,2})?
は、小数桁がある場合にのみコンマを許可し、コンマを許可しません。疑問符の意味は {0,1}
と同じであるため、 \ d +
の後には、インスタンスがゼロ(つまり何もない)またはインスタンスが1つあります
,\d{1,2}
ヘレンが正しく指摘しているように、キャプチャしていないグループを使用するだけで十分です。
\d+(?:,\d{1,2})?
追加の?:
は、括弧が疑問符で使用するために、\ d {1,2}
部分をグループ化することのみを意味するが、これらの括弧内で一致したものを覚えておく必要はありません。これは、正規表現エンジンの作業量が少ないことを意味するため、パフォーマンスが向上します。
他のヒント
お金の検証にこの非常にリベラルな正規表現を使用します:
new Regex(@"^\-?\(?\$?\s*\-?\s*\(?(((\d{1,3}((\,\d{3})*|\d*))?(\.\d{1,4})?)|((\d{1,3}((\,\d{3})*|\d*))(\.\d{0,4})?))\)?<*>quot;);
これらはすべて許可されます: $ 0、0、(0.0000)、0.1、.01、.0001、$。1、$。01、$。0001、($。1)、($。01)、$(。0001)、0.1、0.01 、0.0001、1、1111。、1,111。、1、1.00、1,000.00、$ 1、$ 1.00、$ 1,000.00、$ 1.0000、$ 1.0000、$ 1,000.0000、-1、-1.00、-1,000.00、-$ 1、-$ 1.00、-$ 1,000.00 、-$ 1、-$ 1.00、-$ 1,000.00、$-1、$-1.00、$-1,000.00、$(1)、$(1.00)、$(1,000.00)、$(1)、$(1.00)、 $(1,000.00)、($ 1)、($ 1.00)、($ 1,000.00)
iは javascript でこれを使用しました:c#であなたに役立つかもしれません
var entered = '10.00';
var regex = /^\d+(?:\.\d{2})?$/; // starts with N digits optional ".\d\d"
console.log(entered.match(regex));