我需要在文本框中输入金额,该文本框允许带小数点和逗号的数字.这是什么正则表达式?
我用下面的
txtInitialAmountGuarDetails.ValidationSettings.RegularExpression.ValidationExpression
= @"^[-+]?\d*[0-9](|.\d*[0-9])(|,\d*[0-9])?$";
但它不适用于像300,000,000,000,000这样的大数字.
零碎地构建它.鉴于美国语言环境,具有这些规则的数字按顺序排列:
^[+-]?\d{1,3}(?:,\d{3})*(?:[.]\d+)?$你对小数点后的位数有限制吗?然后将最后一个加号更改为{ 2}2位数.
所以,正则表达式是:
@"^[+-]?\d{1,3}(?:,\d{3})*(?:[.]\d+)?$"
Run Code Online (Sandbox Code Playgroud)
或者,如果您想解释您的工作,请使用以下x选项:
@"(?x) # Extended format.
^[+-]? # Optional sign.
\d{1,3} # Initial 1-3 digits.
(?:,\d{3})* # Any number of commas followed by 3 digits.
(?:[.]\d+)?$" # An optional decimal point followed by any number of digits.
Run Code Online (Sandbox Code Playgroud)
但是C#是否已经具有依赖于语言环境的验证器?