字符串到双重验证c#请回答

时间:2013-10-28 20:50:03

标签: c# string validation numerical typeconverter

好的,所以我正在构建一个WPF格式的程序。 如你所知wpf的输入通常是字符串,首先将它们转换为 double 我需要验证这些字符串是否合适然后继续并转换它们。 问题在于验证,我已经在验证中完成了部分,检查是否 string.IsNullOrEmpty ,但我不能做的是验证答案是否完全无法转换...我展示了一个例子,因为仍然应该接受一些非完全数字的字符串,例如:

“sadasdaasd” - 不被接受(显然)

“8945a4554” - 不接受(中间有'a')

“3519” - 接受

“12.55” - 接受

“ - 3/4” - 接受并且该值应转换为双倍为(-3)除以(4)。所以'/'被接受,它将字符串拆分为2,然后将其转换为double作为第一部分/第二部分。

我一直试图整天做这个验证但仍然没有成功,我尝试在网上搜索一些输入验证,有些人说我需要使用 double.TryParse(string,out double)< / strong>但此功能不适用于我想要的'/'拆分。所以请帮帮我!!!

1 个答案:

答案 0 :(得分:1)

我首先要通过正则表达式解析你的字符串(q:是“-3 * 4”可接受的-3倍4?)。基本上你正在寻找一个像这样的正则表达式的匹配(这适用于-3/4,你想进一步测试它并修改如果允许乘法):-?\d+[/]\d+

如果找到匹配项,请使用string.Split('/')解析字符串,这将为您提供一系列字符串。 TryParse每一个并做数学。

如果没有匹配项,请使用TryParse(如前所述)。这将成功(在您的示例中为3519,12.55)或失败(示例中为sadasdaasd,8945a4554)。

注意:你也可以使用string.Contains('/'),但是你必须检查它是否包含多个斜杠(除非允许这样的东西 - 在这种情况下你需要重新访问那个正则表达式。