如何在ASP.NET中应用正则表达式以匹配日期格式为MM/DD/YYYY HH:MM:SS am/pm

3

我有一个文本框,用户输入的格式为 dd/mm/yyyy hh:mm:ss。现在,我想用正则表达式验证它。我不确定如何应用表达式。我也附上了我的代码。

  <tr>
      <td style="width: 30%" class="EcommLabel">
          Date From
      </td>
      <td style="width: 70%" class="EcommLabel">
          <asp:TextBox ID="txtDateFrom" CssClass="EcommNormalTextBox" runat="server">
          </asp:TextBox>MM/DD/YYYY<br />

      <%-- <asp:RegularExpressionValidator ID="regDateFrom" ValidationExpression="^(((0?[1-9]|1[012])/(0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])/(29|30)|(0?[13578]|1[02])/31)/(19|[2-9]\d)\d{2}|0?2/29/((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$" ControlToValidate="txtDateFrom" ValidationGroup="Promotion" runat="server" ErrorMessage="Invalid Date"></asp:RegularExpressionValidator>--%>

      <asp:RangeValidator runat="server" ID="rvDateFrom" Type="Date" ControlToValidate="txtDateFrom" MaximumValue="3000/12/31" MinimumValue="2000/1/1" ErrorMessage="Invalid Date" Display="Dynamic" ValidationGroup="Promotion" />
      </td>
  </tr>

1
自定义DateTime解析怎么样,而不是使用正则表达式? - Soner Gönül
不,我需要仅使用正则表达式完成它。 - Shian JA
1
为什么?我真的很好奇,为什么你只能使用正则表达式... - wonderb0lt
...是的?我相信在ASP中也有类似日期的东西吧? :) - wonderb0lt
你的正则表达式具体有什么问题?你是否遇到了错误或者得到了意料之外的结果? - juharr
显示剩余4条评论
3个回答

1

使用此表达式"(\d{2}):(\d{2}):(\d{4}):(\d{2}):(\d{2}):(\d{2})",例如:

<asp:RegularExpressionValidator ID="regDateFrom" ValidationExpression="(\d{2}):(\d{2}):(\d{4}):(\d{2}):(\d{2}):(\d{2})"
                                    ControlToValidate="txtDateFrom" ValidationGroup="Promotion" runat="server"
                                    ErrorMessage="Invalid Date"></asp:RegularExpressionValidator>

还可以参考以下stackoverflow问题:
如何编写匹配 MM:DD:YYYY:HH:MM:SS 的正则表达式
JavaScript中验证 MM/DD/YYYY HH:MM:SS AM/PM 日期的正则表达式

希望有所帮助!


0

更改您的正则表达式即可。

使用以下正则表达式

^([1-9]|([012][0-9])|(3[01]))-([0]{0,1}[1-9]|1[012])-\d\d\d\d [012]{0,1}[0-9]:[0-5][0-9]:[0-5][0-9]$

它将验证值01-12-2011 19:59:59

<asp:RegularExpressionValidator ID="regDateFrom" 
  ValidationExpression="^([1-9]|([012][0-9])|(3[01]))-([0]{0,1}[1-9]|1[012])-\d\d\d\d [012]{0,1}[0-9]:[0-5][0-9]:[0-5][0-9]$"  
  ControlToValidate="txtDateFrom" ValidationGroup="Promotion" 
  runat="server"
  ErrorMessage="Invalid Date">
</asp:RegularExpressionValidator>

0
我有一个日期选择器,用户输入的格式为MM/DD/YYYY。我想用正则表达式验证它。以下是可能有帮助的代码:
expression = "^([0]{0,1}[1-9]|1[012])/([1-9]|([012][0-9])|(3[01]))/[0-9]{4}$";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接