接受大于零的值,甚至可以是 0.01 或 0.10

Accept value greater than zero and the value can be even 0.01 or 0.10

我有一种方法可以尝试验证该值,该值可以是任何但不应该是 zero

function change(){
    var bill= document.getElementById("myTextField")
    var RE = /^(?!^0*$)(?!^0*\.0*$)^\d{1,2}(\.\d{1,2})?$/;
    if(RE.test(bill)){
       alert("True");
    }else{
      alert("False");
    }    
}

JSD FIDDLE DEMO

但是即使我输入正确的值,这个 returns 还是错误的。

the minimum value should be greater than 0 and maximum value is 99999.99

您无法针对正则表达式测试 stBill 输入元素对象本身。您需要测试它的价值:

RE.test(stBill.value)
function change(){
    var stBill = Math.round(document.getElementById("myTextField").value * 100)/ 100;
    var RE = /^(?!^0*$)(?!^0*\.0*$)^\d{1,2}(\.\d{1,2})?$/;
    if(RE.test(stBill)){
       alert("True");
    }else{
      alert("False");
    }       
}

测试值而不是元素,您选择的是元素而不是它的值

Demo Fiddle

尝试修复

RE.test(stBill.value)

var stBill = document.getElementById("myTextField").value;

您应该寻找价值而不是元素。 :)

回答正确的人有点偏离主题,但将值转换为浮点数并进行测试可能更容易。

function change(){
    var stBill = document.getElementById("myTextField").value;
    var num = parseFloat(stBill, 10);
    if(num > 0 && num <= 99999.99){
        alert("True");
    }else{
        alert("False");
    }
}