求一简单通用正则表达式
金额控件验证:要非负数,可以为小数点或0,但位数不能超过10位,请问要怎么写
网上有找 \d+(\.{0,1}\d+){0,1} 是非负数。 d{10} 是不能超过10位,用|是分支条件。
有没有与门条件可以写,或者其它方法呀,在线等~~~~
叩谢!!!
------解决方案--------------------^0
------解决方案--------------------(?!0+$)\d+(\.\d+)$
位数不能超过10位, 这个可以设置textbox的maxlength来限制
------解决方案--------------------/// <summary>
/// 字符串是否是数字
/// </summary>
/// <param name="strNum">要判断的字符串</param>
/// <param name="decimalPlaces">最大几位小数,如果是整数就为0</param>
/// <param name="isNegativeNum">是否可以为负数</param>
/// <returns>是否是符合条件的数字</returns>
public static bool IsNumber(string strNum, int decimalPlaces, bool isNegativeNum)
{
string regexStr = @"\d+";
if (decimalPlaces != 0)
{
regexStr += @"(\.\d{0," + decimalPlaces + "})?";
}
if (isNegativeNum)
{
regexStr = @"-?" + regexStr;
}
regexStr = "^" + regexStr + "$";
return Regex.IsMatch(strNum, regexStr);
}