0

我已经尝试了一个正则表达式来根据要求验证一个十进制值,这对于正整数来说很好,但是当我使它成为可选时,+ or -我无法验证它可以有人帮助我这是我的表达

ValidationExpression="^[-+][0-9]+(\.([0-9]{1,3})?)?$"

4

2 回答 2

4

您必须使用修饰符使符号可选,该?修饰符与允许的字符一起[-+]表示zero or one + or -

ValidationExpression="^[-+]?[0-9]+(\.([0-9]{1,3})?)?$"
于 2013-04-12T06:06:31.020 回答
2

你必须使用正则表达式吗?

如果没有,我建议使用decimal.TryParse()。例如

public bool IsValidDecimal(string value)
{
    decimal test;
    return decimal.TryParse(value, NumberStyles.Any, CultureInfo.CurrentCulture, out test);
}

使用的一个优点.TryParse()是它将为您处理不同的文化。不同的国家使用不同的标记作为十进制分隔符。例如,在美国,.是分隔符,而在俄罗斯,则使用。

于 2013-04-12T06:12:16.233 回答