日期:2014-05-17  浏览次数:20709 次

求一简单通用正则表达式
金额控件验证:要非负数,可以为小数点或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);
        }