alert(/^[+|-]?[1-9](\d+)?|0(\.\d+)?$/.test("33.123"));

解决方案 »

  1.   

    sorry 少了一个转义:
    /^(\+|-)?(0|[1-9]\d*)(\.\d+)?$/scoutlin(梅川库子) 你犯了一个与我前几天一样的错误, 用了中括号而非括号:
    你对 "|12" 没有判断出不对
      

  2.   

    alert(/^[+|-]?[1-9](\d+)?|0(\.\d+)?$/.test("33.123"));
      

  3.   

    alert(/^(\+|-)?(0|[1-9]\d*)(\.\d+)?$/.test(str));
      

  4.   

    <script>
    var a='555.';
    alert(/^([1-9](\d+)?|0)(\.\d+)?$/.test(a));
    </script>
      

  5.   

    我觉得这个完全可以了   /^(\+|\-)?(\d)+(\.)?(\d)*$/g在数字输入的时候,应该允许输入00123 这样的格式。我看window计算器也是这样的,几乎所有的桌面输入控件都是可以的