我有一个方法,在该方法中我尝试验证值,并且该值可以是任何值,但不应该是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");
}
}