接受大于零的值,并且该值甚至可以是0.01或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小提琴演示

但即使我输入了正确的值,它也会返回false。

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

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

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

您不能针对regex测试stBill,即输入元素对象本身。你需要测试它的价值:

RE.test(stBill.value)

尝试修复

RE.test(stBill.value)

var stBill = document.getElementById("myTextField").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");
    }       
}

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

演示Fiddle

相关内容

  • 没有找到相关文章

最新更新