我正在尝试制作一个javascript函数,该函数将检查用户在文本字段内输入的值是否不能小于9位数字&不能全为0
这是我做的
function CheckField(field)
{
if (field.value.length <9 || field.value=="000000000")
{
alert("fail");
field.focus();
return false;
}
else
{
return true;
}
}
<input type ="text" id="number1" onBlur='return CheckField(this)'>
但是这并不检查用户输入超过9个值并且全部为0的情况。它只检查1个条件,即9个零000000000
所以,如果我没理解错的话,你希望用户能够输入一个超过9位的数字,但它们不能全是零,对吧?
这可以用regexp来完成:
var value; // Obtain it somehow
if (/^d{9,}$/.test(value) && !/^0+$/.test(value)) {
// ok
}
检查的是该值是否至少为9位数字(它不允许除数字外的任何值),并且它们不全为0。
这应该检查这两个条件:
function CheckField(field){
return !/0{9}/.test(field.value) && /d{9}/.test(field.value);
}
试试这样:
var valueEntered = field.value;
if (parseInt(valueEntered) == 0) ...
或者如果你想检查它是否是一个数字:
if (!(parseInt(valueEntered) > 0))
我想到了两个选项。您可以尝试将该值解析为数字并测试isNaN
或!= 0
var parsed = parseInt(field.value, 10);
if(field.value.length < 9 || !(isNaN(parsed) || parsed != 0)){
alert("fail");
... rest of code
}
或者你可以用regex
if(field.value.length < 9 || !/[^0]/.test(field.value){
alert("fail");
... rest of code
}
try this:
if (field.value.length <9 || field.value.replace("0","") == "")