string strA = "^[1-9]d*.d*|0.d*[1-9]d*$";
====
   string strA = @"^\d+(\.\d+)?$";

解决方案 »

  1.   

    弱弱的问一下,你是要我替换成@"^\d+(\.\d+)?$"  吗?
    我如果还想要负的价格,是不是 string strFu = @"^-(\d+(\.\d+)?)$" 
      

  2.   

     string strFu = @"^-?(\d+(\.\d+)?)$" 
    PS: 姑娘的英文水平真不错
      

  3.   

    嘻嘻 我一急,strFu就出来了
     谢谢兔子大哥
      public string Roundab(string a)
            {
              string strA= @"^\d+(\.\d+)?$";
              string strFu = @"^-?(\d+(\.\d+)?)$";
                if(!Regex.IsMatch(a,strA))
                {
                    return a;
                }
                else if(!Regex.IsMatch(a,strFu))
                {
                    return a;
                }
                else 
                {
                   //是价格,就取小数点后2位
                    decimal dea = Math.Round(Convert.ToDecimal(a), 2);
                    return dea.ToString();
                }          
            }
    我这还写错了吗,
      

  4.   

        string strA= @"^\d+(\.\d+)?$";这就不要了,strFu已经包含了正负两种情况的验证了-? 表示匹配 - 字符0-1次
      

  5.   

    效果是出来了,可是 "- 字符0-1次" 是啥意思呀,我实在看不明白了,msdn上的语法也死活看不明白