设置日期&根据区域性将正则表达式转换为RegularExpressionValidator
本文关键字:正则表达式 转换 RegularExpressionValidator 区域性 日期 设置 | 更新日期: 2023-09-27 18:16:28
我面临验证日期的问题&时间根据当地文化而定。
这是我的正则表达式验证器
<asp:RegularExpressionValidator
ID="regTime"
ControlToValidate="txtTime"
Display="Dynamic"
Text="Invalid Time Format"
ValidationExpression="^((1[012])|(0?[1-9])):([0-5][0-9]) ?([aApP][mM])$"
runat="server">
</asp:RegularExpressionValidator>
上面的验证器验证en-en区域性的时间。
现在,我正在开发一个应用程序,需要能够处理每个文化的日期和时间格式,我想要一个具体的解决方案来验证日期& &;
例如,美国时间格式为h:mm tt (01:20 PM) &德国时间格式为HH:mm(13:20)。
对不起,这让我想起了一句流行的话:
无论如何,你不需要正则表达式,. net的DateTime和CultureInfo最适合解决这个问题。创建您自己的自定义验证器,执行如下操作:有些人在遇到问题时,会想"我知道,我就用。正则表达式。"现在他们有两个问题。
var usCulture = new CultureInfo("en-us");
DateTime.ParseExact("3:20 PM", usCulture.DateTimeFormat.ShortTimePattern, usCulture);
var germanCulture = new CultureInfo("de");
DateTime.ParseExact("13:20", germanCulture.DateTimeFormat.ShortTimePattern, germanCulture);
如果你想要一个返回值而不是一个异常,使用DateTime.TryParseExact