我想要定期验证表达式来验证只输入年份(yyyy)或日期(yyyy-MM-dd)。
不能接受:
21,
23323
它应该接受任何四位数的整数值(比如2012),它也应该只接受年份(yyyy-MM-dd)格式。
答案 0 :(得分:2)
你不需要使用正则表达式。
我会使用DateTime.TryParseExact
overload作为参数。
string[]
你在问题中说string s = "2012";
DateTime dt;
var formats = new[] {"yyyy", "yyyy-MM-dd"};
if(DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
// Your string is a valid DateTime for yyyy or yyyy-MM-dd format.
}
,但你在标题中说yyyy-MM-dd
。将它们添加到您尝试验证的yyyy/MM/dd
数组中。