我试图制作一个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的条件。它仅检查具有精确9个零000000000
的1个条件答案 0 :(得分:2)
所以,如果我明白这一点,你希望用户能够输入一个超过9位的数字,但它们不能全为零,对吗?
这可以使用正则表达式完成:
var value; // Obtain it somehow
if (/^\d{9,}$/.test(value) && !/^0+$/.test(value)) {
// ok
}
这检查的是该值是否至少为9位(除了数字之外不允许任何其他内容)并且它们不是全0。
答案 1 :(得分:1)
这应检查两个条件:
function CheckField(field){
return !/0{9}/.test(field.value) && /\d{9}/.test(field.value);
}
答案 2 :(得分:0)
尝试这样的事情:
var valueEntered = field.value;
if (parseInt(valueEntered) == 0) ...
或者如果你想检查它是否也是一个数字:
if (!(parseInt(valueEntered) > 0))
答案 3 :(得分:0)
试试这个:
if (field.value.length <9 || field.value.replace("0","") == "")
答案 4 :(得分: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
}
第一种选择可能更快。