所以我正在尝试从字符串中剥离数据,因为我在WPF中有一个看起来像__,___
的“预设”输入,现在用户必须输入类似30,589
的东西,但是当用户只需给出5
或50
,就需要除去其余部分(保留,
)以正确地使输入值浮动。我现在拥有的代码如下所示:
if (inp_km.Text == "__,___")
{
team_results.results[inp_tour_part.SelectedIndex].km =
float.Parse("00,000",
NumberStyles.AllowDecimalPoint,
CultureInfo.GetCultureInfo("nl-NL")); // Give the new value
}
else
{
team_results.results[inp_tour_part.SelectedIndex].km =
float.Parse(inp_km.Text,
NumberStyles.AllowDecimalPoint,
CultureInfo.GetCultureInfo("nl-NL")); // Give the new value
}
但是这段代码只是检查输入是否为空白...有人可以帮我吗?
修改
所以我包括了一个屏幕,这是用户获得的输入布局;
您可以看到,输入是“预填充的”,这种输入的内容是一个“字符串”,所以,让我说,我在第一个输入中键入的只是5;
然后该值(在C#中由input_name.Text
撤消)为5_:__
,但这是一个“错误”的值,您不能填写此类内容,我如何检查是否还有一个输入中的:
或_
。
此外,底部输入是相同的,但随后需要完全填写。
答案 0 :(得分:2)
因此,您要检查输入是以下两种形式之一:(DateField1 + TimeField1) - (DateField2 + TimeField2)
或12,345
。
使用12:34
可以很容易地做到这一点。
Regex
您还没有弄清楚输入的有效格式。如果存在逗号(例如,两位数后跟一个逗号,再跟着三位数字),则上面的内容将严格地针对static void Main(string[] args)
{
var inputComma = "12,345";
var inputColon = "98:76";
Regex regexComma = new Regex(@"^\d{2},\d{3}$");
Regex regexColon = new Regex(@"^\d{2}:\d{2}$");
var matchComma = regexComma.Match(inputComma);
if (matchComma.Success)
{
Console.WriteLine(inputComma);
}
Console.WriteLine();
var matchColon = regexColon.Match(inputColon);
if (matchColon.Success)
{
Console.WriteLine(inputColon);
}
Console.ReadLine();
}
格式为真,对于冒号,只有12,345
格式的数字(两位数)仅在结肠之前和之后)。
您可能希望根据您的确切条件修改12:34
。