小编Igo*_*r S的帖子

正则表达式匹配十进制值

我有以下正则表达式来匹配小数:

@"[\d]{1,4}([.][\d]{1,2})?"
Run Code Online (Sandbox Code Playgroud)

但我可以输入多个小数点。我怎样才能防止这种情况发生?一般来说,我可以输入“2000”或“2000.22”等字符串。我尝试使用decimal.TryParse,但我可以输入两个小数点(例如2000..)

这是我的类,其中包含验证方法:

 public static class ValidationUtils
 {
    public static bool IsValid(string text)
    {
        var regex = new Regex(@"^\d{1,9}([.]\d{1,2})?$");
        var success = regex.IsMatch(text);

        return success;
    }
 }
Run Code Online (Sandbox Code Playgroud)

这是页面代码开始中的调用:

private void OnPreviewTextInput(object sender, TextCompositionEventArgs eventArgs)
{
    var box = eventArgs.OriginalSource as TextBox;
    if (box == null) return;
    eventArgs.Handled = !ValidationUtils.IsValid(box.Text + eventArgs.Text);
}
Run Code Online (Sandbox Code Playgroud)

以及 TextBox 的 xaml:

 <TextBox Text="{Binding Nominal, Mode=TwoWay,
 StringFormat={}{0:0.######}, UpdateSourceTrigger=PropertyChanged, 
 NotifyOnValidationError=True, ValidatesOnDataErrors=True,
 Converter={StaticResource  decimalValueConverter}}"
 PreviewTextInput="OnPreviewTextInput"/>
Run Code Online (Sandbox Code Playgroud)

我在这里使用了错误的事件吗?

感谢您。

c# regex validation decimal

3
推荐指数
1
解决办法
5716
查看次数

decimal.TryParse返回false

例如,文本框中的输入字符串为10.00美元.我打电话

decimal result;
var a = decimal.TryParse(text, NumberStyles.AllowCurrencySymbol, cultureInfo, out result);
Run Code Online (Sandbox Code Playgroud)

cultureInfo是已知的(en-US).为什么decimal.tryParse返回错误?

谢谢.

c# currency cultureinfo decimal

3
推荐指数
1
解决办法
2678
查看次数

将一维数组写入二维数组

让我们说我有一系列字符,我从控制台输入.如何以下列方式将它们写入二维数组:

1 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

或者使用列表会更好吗?

谢谢!

c# arrays f#

-2
推荐指数
1
解决办法
1572
查看次数

标签 统计

c# ×3

decimal ×2

arrays ×1

cultureinfo ×1

currency ×1

f# ×1

regex ×1

validation ×1