我已经尝试了一个正则表达式来根据要求验证一个十进制值,这对于正整数来说很好,但是当我使它成为可选时,+ or -
我无法验证它可以有人帮助我这是我的表达
ValidationExpression="^[-+][0-9]+(\.([0-9]{1,3})?)?$"
您必须使用修饰符使符号可选,该?
修饰符与允许的字符一起[-+]
表示zero or one + or -
。
ValidationExpression="^[-+]?[0-9]+(\.([0-9]{1,3})?)?$"
你必须使用正则表达式吗?
如果没有,我建议使用decimal.TryParse()。例如
public bool IsValidDecimal(string value)
{
decimal test;
return decimal.TryParse(value, NumberStyles.Any, CultureInfo.CurrentCulture, out test);
}
使用的一个优点.TryParse()
是它将为您处理不同的文化。不同的国家使用不同的标记作为十进制分隔符。例如,在美国,.
是分隔符,而在俄罗斯,
则使用。