正则表达式 不为0的正整数和小数(小数点后面4位)。可以是:0.1 
        0.11
        0.111
        0.1111
        1.1
        1.11
        1.111
        1.1111
        ....

解决方案 »

  1.   

    ^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$  必须是正数
     
    Js代码  
    function isPositiveNumber(value)//必须是正数 不能为空.但可以为零  
    {  
      var re=new RegExp(/^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/);  
      var result;  
      if(re.test(value))  
      {  
        result=true;   
      }  
      else  
      {  
        result=false;  
      }  
      return result;  
      
    }  
     
     
     
    ^(-)?(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$ 可以是正数,也可以是负数.
    不能为空.但可以为零.
      

  2.   

    ^(?:0\.\d{1,4}|(?!0)\d+(?:\.\d{1,4})?)$
      

  3.   

    这种其实可以用:
    string s = "0.0533";
    double value = 3.4556;
    if (double.TryParse(s, out value))
    if (value > 0)
    return Regex.IsMatch(s, @"\.\d{1,4}");
    return false;封装成个方法,就是先判断是否是大于0的实数,再判断小数点后最多4位。
      

  4.   

    protected void Page_Load(object sender, EventArgs e)
    {
    string[] values = { "3.456", "0", "0.0", "0.0014", "3.00235" };
    foreach (string value in values)
    Response.Write(value + ":" + IsDouble(value) + "<br/>");
    }
    public bool IsDouble(string checkedStr)
    {
    double value;
    if (double.TryParse(checkedStr, out value))
    if (value > 0)
    return Regex.IsMatch(checkedStr, @"\.\d{1,4}$");
    return false;
    }