質問

お金の価値を維持するために 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));
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top