Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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_Regex - Fatal编程技术网

在javascript中第一个正则表达式通过后,如何继续检查验证?

在javascript中第一个正则表达式通过后,如何继续检查验证?,javascript,regex,Javascript,Regex,我有一个javascript中的正则表达式,它在clientclick中被选中。我下面的代码工作正常,如果第一次检查是假的,我有一条消息显示,它在提交之前停止,因为我想它。但是,如果第一次验证检查正常,我希望它检查下一组验证,但它只是跳过其余部分并提交。我是不是遗漏了什么 <script type="text/javascript"> function checkall() { var isValid21 = false; var regex21 = /(0[

我有一个javascript中的正则表达式,它在clientclick中被选中。我下面的代码工作正常,如果第一次检查是假的,我有一条消息显示,它在提交之前停止,因为我想它。但是,如果第一次验证检查正常,我希望它检查下一组验证,但它只是跳过其余部分并提交。我是不是遗漏了什么

 <script type="text/javascript">
  function checkall() {

    var isValid21 = false;
    var regex21 = /(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/;
    isValid21 = regex21.test(document.getElementById("TimeTest").value);
    document.getElementById("spnError21").style.display = !isValid21 ? "block" : "none";
    document.getElementById("TimeTest")
    return isValid21;

     var isValid2 = false;
     var DDLOne = document.getElementById("DropDownA");
     if (DDLOne.value == "") {
     document.getElementById("spnError2").style.display = !isValid2 ? "block" : "none";
     document.getElementById("DropDownA")
         return false;
     }

 var submit = 0;
         if (++submit > 1) {
             alert('Give me a second.');
             return false;
         }
         return true;
     }
</script>

<asp:Button ID="Button1" runat="server" Text="Submit" onclientclick="return checkall();" OnClick="Button1_Click" /> 

您的代码在第一次检查后立即返回,这就是第二次检查从未被检查的原因。您需要更改代码以在函数末尾返回两个检查的集合。此外,submit变量在scope函数中声明,这意味着它将始终初始化为0。我认为你需要在你的职责之外声明。另外,那些空文档是什么。getElementById。。。需要什么?他们什么也不做。最后,在函数的末尾返回true。您需要调整逻辑规则,并在最后返回isValid21和isValid2的集合。您必须自己进行调整,因为我们不知道所需的业务规则。尽管如此,我不确定这种逻辑是否合理,但这至少应该让您朝着正确的方向前进:

var submit = 0;
function checkall() {
    var isValid21 = false;
    var isValid2 = false;
    var regex21 = /(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/;
    isValid21 = regex21.test(document.getElementById("TimeTest").value);
    document.getElementById("spnError21").style.display = !isValid21 ? "block" : "none";
    var DDLOne = document.getElementById("DropDownA");
    if (DDLOne.value == "") {
        document.getElementById("spnError2").style.display = !isValid2 ? "block" : "none";
        isValid2 = false;
    }
    if (++submit > 1) {
        alert('Give me a second.');
        isValid2 = false;
    }
    //SOME OTHER LOGIC RULES THAT CHANGE isValid2 TO TRUE...

    //YOU WILL NEED TO DO SOME ADDITIONAL LOGIC TWEAKING BEFORE THIS LINE. AS IT STANDS NOW, THIS WILL ALWAYS RETURN FALSE.
    return isValid21 && isValid2;
}

您认为return是什么意思?为什么不让每个验证步骤都成为一个不同的函数,然后调用一个调用其他验证函数的验证函数呢?当您可以创建多个函数来验证和清理代码时,为什么要生成一个卷积函数?请考虑熟悉:返回语句结束函数执行…返回函数结束。把它放在一个if块中。