正则表达式如何匹配标准时间或军事时间格式

时间:2016-07-05 19:47:11

标签: asp.net regex ajaxcontroltoolkit

我试图让这个AJAX ControlToolkit接受标准时间或军事时间格式,但是在这个版本中,任何超过1200的军事时间都会失效。进入军事时间时,我更喜欢1200,1305等,没有A / PM或":"分隔器。你能帮我吗?感谢。



<td class="data">
  <strong>Scheduled Time:</strong>
  <br />
  <asp:TextBox ID="scheduled_time" runat="server" Enabled="False"></asp:TextBox>
  <asp:Label ID="lblScheduled_time_tip" runat="server">
    <div style="font-size: 8pt">Tip: Type 'A' or 'P' to switch AM/PM</div>
  </asp:Label>
  <cc1:MaskedEditExtender ID="MaskedEditExtender3" runat="server" TargetControlID="scheduled_time" Mask="99:99" MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus" OnInvalidCssClass="MaskedEditError" MaskType="Time" AcceptAMPM="True" ErrorTooltipEnabled="True"
  />
  <cc1:MaskedEditValidator ID="MaskedEditValidator3" runat="server" ControlExtender="MaskedEditExtender3" ControlToValidate="scheduled_time" IsValidEmpty="False" EmptyValueMessage="Time is required" InvalidValueMessage="Time is invalid" Display="Dynamic"
  TooltipMessage="Input a time" EmptyValueBlurredText="*" ValidationExpression="^(([1-9]{1})|([0-1][1-2])|(0[1-9])|([1][0-2])):([0-5][0-9]).(([aA])|([pP]))[mM]$" InvalidValueBlurredMessage="Invalid time" ValidationGroup="MKE" />
</td>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

^((?:0?[1-9]|1[0-2]):[0-5][0-9](?:[aA]|[pP])[mM]|[0-1][0-9][0-5][0-9]|2[0-3][0-5][0-9])$

正则表达式是否符合我的想法:

(?:0?[1-9]|1[0-2]):[0-5][0-9](?:[aA]|[pP])[mM] 匹配任何有效的正常时间。 (1-12:0-59(AM / PM))

0?允许01:23 PM或1:23 PM)

[0-1][0-9][0-5][0-9]|2[0-3][0-5][0-9]任何有效的祖鲁语(0000-2359)

^$锚点确保没有别的东西。

如果您想查看/播放匹配的内容: regex101