Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript检查电话号码-IF语句_Javascript_Validation - Fatal编程技术网

Javascript检查电话号码-IF语句

Javascript检查电话号码-IF语句,javascript,validation,Javascript,Validation,我的if语句不能100%工作;我基本上希望它检查长度和数字,但是如果它留空,那么绿色文本和errtelno1的样式-你能帮我理解为什么吗?我是新来的…这是一个11位数的数字 if (document.getElementById("telno").value.length != 11 ) { document.getElementById("errtelno").style.display = "inline"; document.getElementById("errtelno

我的if语句不能100%工作;我基本上希望它检查长度和数字,但是如果它留空,那么绿色文本和errtelno1的样式-你能帮我理解为什么吗?我是新来的…这是一个11位数的数字

if (document.getElementById("telno").value.length != 11 ) {
    document.getElementById("errtelno").style.display = "inline";
    document.getElementById("errtelno").style.visibility = "visible";
    document.getElementById("telno").style.border ='4px solid red';
    document.getElementById("errtelno").style.color = "green";
    document.getElementById("errtelno").style.fontWeight = "light";
    document.getElementById("errtelno").style.fontSize = "12px";
    isValid = false;
}   else
{       document.getElementById("telno").style.border ='2px solid green';
        document.getElementById("errtelno").style.color = "green";

}

if (document.getElementById("telno").value != /^\d+$/ ) {
    document.getElementById("errtelno1").style.display = "inline";
    document.getElementById("errtelno1").style.visibility = "visible";
     document.getElementById("telno").style.border ='4px solid red';
     isValid = false;
}   else
{       document.getElementById("telno").style.border ='2px solid green';
}
return isValid; 
}

一个小样本来缩短问题。只有一个样本

var telno = document.getElementById("telno");
var errtelno = document.getElementById("errtelno");
var expr = /^\d+$/;
var isValid = (telno.value.length == 11 && expr.test(telno.value));

if(!isValid) {
  errtelno.style.display = "inline";
  errtelno.style.visibility = "visible";
  telno.style.border ='4px solid red';
  errtelno.style.color = "green";
  errtelno.style.fontWeight = "light";
  errtelno.style.fontSize = "12px";
}
else {
  telno.style.border ='2px solid green';
  errtelno.style.color = "green";
}
return isValid;

空字段可以保留为空,此错误在变量expr中更改,其中表达式仅用于数字格式,如在花括号中的variable长度增加到11

// function to be called

function checkTel(){

// setting the variables

  var telno = document.getElementById("telno"); 
  var errtelno = document.getElementById("errtelno");
  var expr = /^\d+${11}/;
  var isValid = (telno.value.length == 11 && expr.test(telno.value));

// changes box to highlighted red and error messages appear

if(!isValid) {
  document.getElementById("errtelno").style.display = "inline";
  document.getElementById("errtelno").style.visibility = "visible";
  document.getElementById("telno").style.border ='1px solid green';
  document.getElementById("errtelno").style.color = "green";
  document.getElementById("errtelno").style.fontWeight = "light";
  document.getElementById("errtelno").style.fontSize = "12px";
  } 

  // if it is blank or correct input then box turns green

  else {
  document.getElementById("telno").style.border ='2px solid green';
  document.getElementById("errtelno").style.color = "green";
  }
return isValid;
}

什么类型的电话号码-格式差异很大?到目前为止,您尝试了什么?
document.getElementById(“telno”).value!=/^\d+$/
嗯?不能将字符串与正则表达式进行比较。使用
RegExp#test
。啊,我明白了,我在其他地方用regex发送电子邮件,所以是这样的吗?我错过了一点>这就是那行要测试的内容-我想让它确保只有一个数字会是这样的:用于测试一个数字var telno=document.getElementById('telni');var telnoRegEx=/^\d+$/;if(!telnoRegEx.test(telno.value)){好的,谢谢。所以我需要document.getElementById来检查(if!isValid)?(我在上面做了更改)如果您保存
document.getElementById('x')
的值,您可以在
document.getElementById('x')的任何地方反复使用这个保存的值
。您不应该一次又一次地编辑有问题的代码。所有注释和答案都将变得毫无意义。好的,我的代码的哪一部分没有执行?它使方框变绿,但没有添加任何错误消息-是的,对不起,我明白了您的意思,它不是在评估空白字段,我现在已经处理过了。非常感谢您的帮助Holger!