我需要三个正则表达式的帮助来进行日期验证。要验证的日期格式应为:
- MMyy
- ddMMyy
- ddMMyyyy
此外:
我希望正则表达式匹配上述格式中的确切位数。例如,1月应该是01,而不是1:
060117 // ddMMyy格式:好的 06117 // ddMMyy格式:不好
不允许使用连字符和斜杠,例如:06-01-17或06/01/17。
以下是我使用的正则表达式:es。我不能让他们完全正确。
string regex_MMyy = @"^(1[0-2]|0[1-9]|\d)(\d{2})$";
string regex_ddMMyy = @"^(0[1-9]|[12]\d|3[01])(1[0-2]|0[1-9]|\d)(\d{2})$";
string regex_ddMMyyyy = @"^(0[1-9]|[12]\d|3[01])(1[0-2]|0[1-9]|\d)(\d{4})$";
var test_MMyy_1 = Regex.IsMatch("0617", regex_MMyy); // Pass
var test_MMyy_2 = Regex.IsMatch("617", regex_MMyy); // Pass, do NOT want this to pass.
var test_ddMMyy_1 = Regex.IsMatch("060117", regex_ddMMyy); // Pass
var test_ddMMyy_2 = Regex.IsMatch("06117", regex_ddMMyy); // Pass, do NOT want this to pass.
var test_ddMMyyyy_1 = Regex.IsMatch("06012017", regex_ddMMyyyy); // Pass
var test_ddMMyyyy_2 = Regex.IsMatch("0612017", regex_ddMMyyyy); // Pass, do NOT want this to pass.
(如果任何人都可以在每个月中获得允许的日期,并将闰年考虑在内,那将是一个巨大的奖励:))。
谢谢,
最诚挚的问候