金额有两种输入方法:
1.123456789
2.123,456,789
如何写正则表达式,以验证输入的数据是上面两种方法之一

解决方案 »

  1.   

    第二种如下:
    \\d{1,3}(,\\d{3})*(.\\d+)?
      

  2.   

    Pattern pattern=Pattern.compile("\\d{1,3}(,\\d{3})*(.\\d+)?");
      

  3.   

    晕,改一下:
    Pattern pattern=Pattern.compile("\\d{1,3}(,\\d{3})*(\\.\\d+)?");
      

  4.   

    楼主麻烦你自己跑一下面这个吧,我也不说什么了
    public class DigitDemo {
    public static void main(String[] args) {

    String[] ts = new String[]{"123456789","1,234,567,8900","123,456,789"};
    for(int i=0;i<ts.length ;i++){
    System.out.println("check "+ts[i]+" result:");
    System.out.println("check1()'s result:"+check1(ts[i]));
    System.out.println("check2()'s result:"+check2(ts[i]));
    System.out.println("check3()'s result:"+check3(ts[i]));
    System.out.println();
    }
    }

    public static boolean check1(String s){
    return s.matches("\\d{1,3}(,\\d{3})*(.\\d+)?");
    }
    public static boolean check2(String s){
    return s.matches ("\\d{1,3}(,\\d{3})*(\\.\\d+)?");
    }
    public static boolean check3(String s){
            return s.matches( "\\d{1,3}((,\\d{3})*|\\d*)");
    }
    }