在 asp.net 中验证 html 输入日期的范围

validating range of html input date in asp.net

我在 asp.net 中使用 HTML 输入类型日期。使用范围验证器验证日期和正则表达式以仅输入数字。如果输入日期正确,范围验证器和正则表达式都显示错误。

抱歉英语不好。

<div class="form-group">
  <h5>Date of Birth:</h5>
  <div class="controls ">
    <div class="input-group">
      <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
      <input type="date" name="bday" class="form-control" id="dateofbirth" runat="server">
    </div>
    <span style="color:red;"><asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Please Enter Date Of Birth" ControlToValidate="dateofbirth" SetFocusOnError="True"></asp:RequiredFieldValidator></span>
    <span style="color:red;"><asp:RegularExpressionValidator ControlToValidate="dateofbirth" ID="RegularExpressionValidator7" runat="server" ErrorMessage="Please Enter Numbers Only" ValidationExpression="0*[0-9]\d*"></asp:RegularExpressionValidator></span>
    <span style="color:red;"><asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Your are not eligible " ControlToValidate="dateofbirth"  MaximumValue="DateTime.Now.Date.Value.ToString(yyyy-MM-dd)" MinimumValue="DateTime.Now.AddYears(-18).ToString.Value(yyyy-MM-dd)"></asp:RangeValidator></span>
  </div>
</div>

一件事是您的 C# 代码如下所示:

DateTime.Now.Date.Value.ToString("yyyy-MM-dd")

应该用代码字符封装

<% = DateTime.Now.Date.Value.ToString("yyyy-MM-dd") %>

对于 ValidationExpression= 看来您需要弄清楚如何对 ##/##/#### 格式进行正则表达式测试,这就是您想要的日期格式