Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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 如果条件对两种条件都无效_Javascript_Forms_Validation_Dom - Fatal编程技术网

Javascript 如果条件对两种条件都无效

Javascript 如果条件对两种条件都无效,javascript,forms,validation,dom,Javascript,Forms,Validation,Dom,因此,我正在进行一些表单验证,并尝试获取用户输入,这些输入只在满足这两个条件后调用函数。到目前为止,似乎只有满足第一个条件才会导致“工作”警报,而不需要满足第二个条件。我可以输入~以尝试满足第二个条件,但它仍然会给我“中断”警报。我不确定是否可以将link1和link2合并到一个条件中,在这个条件下,我的函数将检查输入以http://开头,但也检查url中某处的~ var link1 = /[~]/; var link2 = /^http:\/\//; var input = do

因此,我正在进行一些表单验证,并尝试获取用户输入,这些输入只在满足这两个条件后调用函数。到目前为止,似乎只有满足第一个条件才会导致“工作”警报,而不需要满足第二个条件。我可以输入~以尝试满足第二个条件,但它仍然会给我“中断”警报。我不确定是否可以将link1和link2合并到一个条件中,在这个条件下,我的函数将检查输入以http://开头,但也检查url中某处的~

  var link1 = /[~]/;
  var link2 = /^http:\/\//;

  var input = document.getElementsByName("textbox")[0];
  if(input.value.match(link1 && link2)) {
  alert("Works");
   } else {
  alert("Broken");
   }

input.value.match
接受一个参数,不能在其中同时传递两个值。您需要像这样单独检查它们:

  if(input.value.match(link1) && input.value.match(link2) ) 

像这样检查。如果这两个条件都为真,则它将满足

     if(input.value.match(link1) && input.value.match(link2)) {
        alert("Works");
     }
     else {
        alert("Broken");
     }

link1和&link2
的值是
/^http:\/\/
。您根本没有检查第一个条件。OP没有传入布尔值…:-3if(value)检查是否存在…&&带来的比较,这将导致在JS布尔结果,请纠正我。谢谢@decezeJavascript的
&&
不返回布尔值: