求一个正则表达式, 大于0 的非负数 或非负小数,小数点后保留4位 急

解决方案 »

  1.   

    ^\d+\.\d{4}$一定是保留4位
    ^\d+[\.\d{4}]?$可以为整数
      

  2.   


    <script>
    if(/^([\d]+|[\d]+.[\d]{4})$/.test('333.33333'))
    {
    document.write('ok');
    }
    else
    {
    document.write('no ok');
    }
    </script>
      

  3.   

    String regex = "(0*[.]((?!0)\\d|(?!00)\\d{2}|(?!000)\\d{3}|(?!0000)\\d{4}))|(\\d*[1-9]\\d*([.]\\d{1,4})?)";
    String[] data = {"0", "0000", "00.0000", "0.1000", "0.0100", "0.0010", "0.0001",
                     "0.05", "1.0000", "10.0000", "10.0100", "10.25", "100", "123456"};
    for (String s : data) {
        System.out.printf("%s:%b\n", s, s.matches(regex));
    }
      此问题 已经解决 谢谢 大虾们  哈哈 
      

  4.   

    (([1-9][\d]*)(\.[\d]{1,4})?)|(0\.[\d]{1,4})  还有这种方法
      

  5.   

    你这种方法没法检验大于0,LZ用0.00测试一下就知道了
    (0\.[\d]{1,4}),这个并没有约束小数掉不全是0String regex = "(0*[.]((?!0)\\d|(?!00)\\d{2}|(?!000)\\d{3}|(?!0000)\\d{4}))|(\\d*[1-9]\\d*([.]\\d{1,4})?)";
    String[] data = {"0", "0000", "00.0000", "0.1000", "0.0100", "0.0010", "0.0001",
                     "0.05", "1.0000", "10.0000", "10.0100", "10.25", "100", "123456"};
    for (String s : data) {
        System.out.printf("%s:%b\n", s, s.matches(regex));
    }