Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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
使用validator控件验证asp.net中的日期字段_Asp.net_Regex_Validation_Date_Comparevalidator - Fatal编程技术网

使用validator控件验证asp.net中的日期字段

使用validator控件验证asp.net中的日期字段,asp.net,regex,validation,date,comparevalidator,Asp.net,Regex,Validation,Date,Comparevalidator,我的页面中有以下验证程序控件 <asp:CompareValidator ID="cvPatientDateOfBirth" runat="server" ControlToValidate="txtPatientDateOfBirth" ErrorMessage="Enter proper date.(DD/MM/YYYY)" Font-Bold="True" Operator="GreaterThan" Display="Dyna

我的页面中有以下验证程序控件

<asp:CompareValidator ID="cvPatientDateOfBirth" runat="server"
        ControlToValidate="txtPatientDateOfBirth"  
        ErrorMessage="Enter proper date.(DD/MM/YYYY)" 
        Font-Bold="True" Operator="GreaterThan"  Display="Dynamic"
        ValidationGroup="FirstPreview" CssClass="validatorMsg" 
        SetFocusOnError="True" ValueToCompare="1/1/1100" Type="Date" >
    </asp:CompareValidator>

  • 当我键入12/09/1900时,它正在正确验证。[好]
  • 当我键入12/09/1009时,它未正确验证。[好]
  • 当我键入12/09/09时,它正在验证。[并非有意]。在这种情况下,我希望它只验证日期年份是否为4位数字。否则显示错误消息
如果我同时使用比较验证器进行日期类型检查和正则表达式验证器进行年份(4digit)检查,则“12/02/198”将显示两个验证器的错误消息

谁能告诉我怎么做


谢谢。

您可以使用RegularExpressionValidator并设置
ValidationExpression

ValidationExpression = "\d{1,2}\/\d{1,2}/\d{4}"

您可以使用RegularExpressionValidator并设置
ValidationExpression

ValidationExpression = "\d{1,2}\/\d{1,2}/\d{4}"

此正则表达式工作正常

^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$

此正则表达式工作正常

^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$

阿吉拉斯·亚库布的答案是有效的。但我想知道是否有任何方法可以使用比较验证器来实现它。如果有人对如何使用比较验证器进行验证有任何想法,请让我知道。Aghilas Yakoub的答案是有效的。但我想知道是否有任何方法可以使用比较验证器来实现它。如果有人对如何使用比较验证程序进行验证有任何想法,请让我知道。但如果输入的日期为“50/50/1900”,则表示正在验证。由于这不是一个有效的日期。我很抱歉,我不在这里,我不在这里,我不在这里,尝试用这((0[0[1-1-9[1-1-9[1-1-9]1[1[1-1-9]3[1-9]3[1-1-9]3[1[1-1-9]3[1[1-1-1]3[01]3[1]3[1]0[1]3[12]3[1]3[1]3[1[1[1[1[1]0[1]0[1]0[13[13578]0[13578]0[13578]鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于这这是作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为这是这一个没有没有一个没有一个没有一个没有一个有效日期的这是作为作为作为作为作为作为作为作为作为作为这是一个没有一个|[2-9]\d][2}]|(29\/02\/(1[6-9]|[2-9]\d)(0[48]|[2468][048]12479][26])|(16 |[2468][048][3579][26])00)$是否可以仅添加验证表达式作为注释?我怀疑你评论末尾的美元是多少。谢谢。但如果日期输入为“50/50/1900”,则表示正在验证该日期。由于这不是一个有效的日期。我很抱歉,我不在这里,我不在这里,我不在这里,尝试用这((0[0[1-1-9[1-1-9[1-1-9]1[1[1-1-9]3[1-9]3[1-1-9]3[1[1-1-9]3[1[1-1-1]3[01]3[1]3[1]0[1]3[12]3[1]3[1]3[1[1[1[1[1]0[1]0[1]0[13[13578]0[13578]0[13578]鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于鉴于这这是作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为这是这一个没有没有一个没有一个没有一个没有一个有效日期的这是作为作为作为作为作为作为作为作为作为作为这是一个没有一个|[2-9]\d][2}]|(29\/02\/(1[6-9]|[2-9]\d)(0[48]|[2468][048]12479][26])|(16 |[2468][048][3579][26])00)$是否可以仅添加验证表达式作为注释?我怀疑你评论末尾的美元是多少。谢谢。这个正则表达式是根据我的需要工作的。它只允许4位数的年份。此外,日期不能大于31,月份不能大于12。此正则表达式正在根据我的需要工作。它只允许4位数的年份。此外,我们的日期不能大于31个月,月份不能大于12个月。