验证有效 "日期时间" 的正则表达式(已解决闰二月)
2007-10-17 10:28
417 查看
^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$
C# Code Test:
public class Class1
{
static void Main(string[] args)
{
// string regex = @"^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$";
string regex = @"^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578]
)|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[4
69])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///
s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([1
3579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((
0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((
0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9]
)|(2[0-8]))))))"; //日期部分
regex += @"(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$";
//时间部分
System.Text.RegularExpressions.RegexOptions options = ((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace | System.Text.RegularExpressions.RegexOptions.Multiline) | System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex, options);
string s = "2003-02-29 23:59:59";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-02-29 23:59:59";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-04-30 0:59:59";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-04-30 01:11:0";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-04-30 0:0:0";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-04-30 00:00:00";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
}
}
//Java Code Test
import java.util.regex.*;
class Class1
{
public static void main(String[] args)
{
Pattern p = Pattern.compile("^((//d{2}(([02468][048])|([13579][26]))[//-/////s]?((((0?[13578])|(1[02]))[//-/////s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/////s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/////s]?((0?[1-9])|([1-2][0-9])))))|(//d{2}(([02468][1235679])|([13579][01345789]))[//-/////s]?((((0?[13578])|(1[02]))[//-/////s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/////s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/////s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(//s(((0?[0-9])|([1-2][0-3]))//:([0-5]?[0-9])((//s)|(//:([0-5]?[0-9])))))?$");
String s = "2003-02-29 23:59:59";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-02-29 23:59:59";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-04-31 0:59:59";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-04-30 01:11:0";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-04-30 0:0:0";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-04-30 00:00:59";
System.out.println(s + " " + p.matcher(s).matches());
}
}
C# Code Test:
public class Class1
{
static void Main(string[] args)
{
// string regex = @"^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$";
string regex = @"^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578]
)|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[4
69])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///
s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([1
3579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((
0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((
0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9]
)|(2[0-8]))))))"; //日期部分
regex += @"(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$";
//时间部分
System.Text.RegularExpressions.RegexOptions options = ((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace | System.Text.RegularExpressions.RegexOptions.Multiline) | System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex, options);
string s = "2003-02-29 23:59:59";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-02-29 23:59:59";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-04-30 0:59:59";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-04-30 01:11:0";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-04-30 0:0:0";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
s = "2004-04-30 00:00:00";
System.Console.Out.WriteLine(s + " {0}",reg.IsMatch(s));
}
}
//Java Code Test
import java.util.regex.*;
class Class1
{
public static void main(String[] args)
{
Pattern p = Pattern.compile("^((//d{2}(([02468][048])|([13579][26]))[//-/////s]?((((0?[13578])|(1[02]))[//-/////s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/////s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/////s]?((0?[1-9])|([1-2][0-9])))))|(//d{2}(([02468][1235679])|([13579][01345789]))[//-/////s]?((((0?[13578])|(1[02]))[//-/////s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/////s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/////s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(//s(((0?[0-9])|([1-2][0-3]))//:([0-5]?[0-9])((//s)|(//:([0-5]?[0-9])))))?$");
String s = "2003-02-29 23:59:59";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-02-29 23:59:59";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-04-31 0:59:59";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-04-30 01:11:0";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-04-30 0:0:0";
System.out.println(s + " " + p.matcher(s).matches());
s = "2004-04-30 00:00:59";
System.out.println(s + " " + p.matcher(s).matches());
}
}
相关文章推荐
- 验证有效 "日期时间" 的正则表达式(已解决闰二月)
- 验证有效 "日期时间" 的正则表达式(已解决闰二月)
- 验证有效 "日期时间" 的正则表达式(已解决闰二月)
- 验证有效 "日期时间" 的正则表达式(已解决闰二月)
- 手机与电话的正则表达式 验证有效日期时间的正则表达式(已解决闰二月)
- 验证有效 日期时间的正则表达式(已解决闰二月)
- Javascript 正则表达式验证日期,格式如同"2010-10-08"
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- 正则表达式 - java验证IP地址 - java验证日期时间,解决润月 - java验证邮箱格式
- [Python]解决正则表达式的"贪婪"匹配
- 时间和日期的正则表达式验证
- js正则表达式具体时间的验证,当前日期跟所填日期比较大小,时间的比较
- 验证日期时间的正则表达式
- js & 正则表达式 验证时间
- 验证日期时间的正则表达式
- 几个C#日期、时间验证的正则表达式
- js验证日期时间格式正则表达式
- 用正则表达式检验是否输入日期时间是有效
- 在次记一下日期验证的正则表达式,已解决闰月问题