检查带有小数位的字符串,用逗号分隔 - C#

erd*_*mgc 1 c# regex

我需要检查这种格式;

1.234.567,89

条目只允许使用一个逗号.

目前的代码

Regex.Match(((TextChangedEventArgs)e).NewTextValue, @"^[0-9]+(\,[0-9]+)?$");
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Tim*_*ter 6

您不应该使用正则表达式来检查字符串是否可以解析为decimal/ double.使用decimal.TryParse(或double.TryParse):

string moneyText = "1.234.567,89";
var myCulture = new CultureInfo("de-DE");
decimal money;
bool validFormat = decimal.TryParse(moneyText, NumberStyles.Currency, myCulture, out money);
if (validFormat)
    Console.WriteLine("Valid format, parsed value was " + money.ToString("C"));
Run Code Online (Sandbox Code Playgroud)