在Javascript中不能为0的HTML文本字段



我正在尝试制作一个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","") == "")

相关内容

  • 没有找到相关文章

最新更新