要求按输入金额,输入数不能有负号(-),也就是说只能是数字和小数点。而且要球大于0,不能等于0,最多只能为两位小数,例如25.20这样的数,我开始是这么写的^[0-9]{0,}[.][0-9]{2}$
但是后来我想了一下
如果输入的时候 允许不输入小数点以及后面的部分
比方说只输入整数部分 25也是允许的
应该怎么修改下呢

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【wanmingshusheng】截止到2008-07-24 12:33:43的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:40                       每贴平均分数:13                       
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:3                        结贴的总分数:40                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   


    var reg=/^\d*[1-9](\.\d{1,2}){0,1}$/g;
    alert(reg.test("0"));
      

  3.   

    这个不能判断是否等于0://答案应为T T T T F F,实为T T T T F T
    String[] source = {"1","222.3","3.45",".5","0.012","0.0"};
    String pattern = "^[0-9]*([.][0-9]{1,2})?$";
    for(String s:source){
      System.out.println(Pattern.matches(pattern,s));
    }
    看来只能采用先判断是否满足,满足的话再转为数字和0比。(js的话可以直接和0比)看看有没有更好的办法?
      

  4.   

    1.JAVA版 String[] source = {"1","222.3","3.45",".5","0.012","0.1","0","0.00","0.0","0.01"};        
    String pattern = "^(\\d*[1-9](\\.\\d{1,2}){0,1})|(0+\\.[1-9][0-9]?)|(0+\\.[0-9][1-9])$";        
    for(String s:source){
      System.out.println(Pattern.matches(pattern,s));
    }2.JS版
    var reg=/^(\\d*[1-9](\\.\\d{1,2}){0,1})|(0+\\.[1-9][0-9]?)|(0+\\.[0-9][1-9])$/g;
    alert(reg.test("0"));
      

  5.   

    9楼的不错,但有点小bug还得再改改
    比如10.0,10.01就有错
      

  6.   

    修改版 String[] source = {"10.01","222.3","3.45",".5","0.012","0.1","0","0.00","0.0","0.01"};        
    String pattern = "^(\\[1-9](\\.\\d{1,2}){0,1})|(\\d+\\.[1-9][0-9]?)|(\\d+\\.[0-9][1-9])$";        
    for(String s:source){
      System.out.println(Pattern.matches(pattern,s));
    }
      

  7.   

    最新修改 String[] source = {"10.00","10.01","222.3","3.45",".5","0.012","0.1","0","0.00","0.0","0.01"};        
    String pattern = "^(\\d*[1-9]\\d*(\\.\\d{1,2}){0,1})|(\\d+\\.[1-9][0-9]?)|(\\d+\\.[0-9][1-9])$";

    for(String s:source){
      System.out.println(Pattern.matches(pattern,s));
    }