日期验证正则表达式

 

 代码如下 复制代码

$arr_date = array(
'2004-06-01',
'2005-0x-10',
'12-12-12',
'2000-12-25 00:10:20',
'2007-12-05'
);

for ($i=0; $i<5; ++$i)
{
 $date = $arr_date[$i];
 if(ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs))
 {
     echo "日期字符串$date 符合'yyyy-mm-dd'格式:";
     echo "$regs[1].$regs[2].$regs[3]<br/><br/>";
 }
 else
 {
     echo "<b>日期字符串$date 不符合'yyyy-mm-dd'格式的日期字符串</b><br/><br/>";
 }
}

//匹配yyyy-mm-dd

 代码如下 复制代码

(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)

 

 

//2:匹配dd/mm/yyyy 或匹配d/m/yyyy

 

 代码如下 复制代码
'/^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|'
                                .'[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})/((([13578]|1[2])|(0[13578]|1[02])'
                                .'/((0[1-9]|[12][0-9]|3[01])|([1-9]|[12][0-9]|3[1])))|(((0[469]|11)|([469]|11))'
                                .'/((0[1-9]|[12][0-9]|30)|([1-9]|[12][0-9]|30)))|'
                                .'((02|2)/((0[1-9]|[1][0-9]|2[0-8])|([1-9]|[1][0-9]|2[0-8]))'
                                .')))|((([0-9]{2})((0[48]|[2468][048]|[13579][26])|([48]|[2468][048]|[13579][26]))|'
                                .'((((0[48])|([48]))|[2468][048]|[3579][26])00))/(02|2)/29)$/';

 

时间: 2024-08-01 03:19:21

日期验证正则表达式的相关文章

验证日期的正则表达式比较全面地验证

原文:验证日期的正则表达式比较全面地验证  1.验证日期的正则表达式加入闰年的判断以及思路分析 进入正题之前,我们需要澄清两个概念: 一,什么是合法的日期范围?对于不同的应用场景,这个问题有不同的解释.这里采纳MSDN中的约定: DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间. 二,关于闰年的阐释.人民教育出版社小学数学室的解释浅明易懂(medi

这个日期验证为什么不能验证时分呢?

问题描述 这个日期验证为什么不能验证时分呢?<asp:RangeValidatorID="rngOpenTime"runat="server"Display="Dynamic"ErrorMessage="*提示:日期格式错误!"ControlToValidate="OpenTime"MaximumValue="2088-01-0100:00"MinimumValue="1

一个容易犯错的js手机号码验证正则表达式(推荐)

写一个简单的正则表达式,用来校验11位手机号码,开头允许是13.15.18,我一开始这样写: var reg = /^(13[0-9]{9})|(15[0-9]{9})|(18[0-9]{9})$/; 运行发现,即使是 13988888877157777,也能通过验证,这说明这个写法错了,我的本意是希望这样: ^(13[0-9]{9})$ 或者 ^(15[0-9]{9})$ 或者 ^(18[0-9]{9})$ 所以正确写法是:var reg = /^1[358][0-9]{9}$/;这样才能保证

日常收集JS邮箱验证正则表达式

背景:正则是一门厚书啊,想写好也不容易,但日常中也就那些像电话.邮箱.手机,网上一堆,但真好验证好了,还得了解一点正则知识,再就是多测试了:-) 下面邮箱正则: 中划线:中划线域名就是米农口中说的扁担域名了,扁担域名由于输入比较麻烦,看起来也比较不正规,是没有多大的价值,目前投资的人是比较少的.按照DNS的标准,域名是不允许有下划线的. 下划线:一些人在注册用户名的喜欢使用下划线_,这种用户名在登录邮箱时很麻烦,给你发邮件的人也很不方便. 二级域名邮箱基本被消灭,这个哥们的正则可以写下划线,扩大

js-.net请假日期验证判断

问题描述 .net请假日期验证判断 判断请假日期必须大于等于当前日期,并且请假日期不能等于已有请假日期 解决方案 DateTime.Compare函数比较两个日期大小,http://developer.51cto.com/art/200907/140529.htm

比较规范的身份证号验证正则表达式

原文:比较规范的身份证号验证正则表达式 一些要求用户信息比较严格的地方比如用户注册.登录的时候都需要验证用户的身份证是否合法,而通过这些验证能大大的过滤掉很多水客,给你的系统带来非常精准的用户信息. 很多时候我们都是通过一组正则表达式来判断用户输入的身份证是否合法,那在用正则表达式判断之前,你对身份证号的组成有多少了解呢?下面来说说一个身份证号里面包含了多少的信息: 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生

最新手机号码验证正则表达式

原文:最新手机号码验证正则表达式 转自:最新手机号码验证正则表达式js版 由于手机号段的不断更新,以前的正则表达式已经无法满足需求.重新编写这条表达式,号段资料来源依据:http://www.jihaoba.com/tools/haoduan/ 现有手机号段: 移动:139   138   137   136   135   134   147   150   151   152   157   158    159   178  182   183   184   187   188   联通

日常收集JS邮箱验证正则表达式_正则表达式

背景:正则是一门厚书啊,想写好也不容易,但日常中也就那些像电话.邮箱.手机,网上一堆,但真好验证好了,还得了解一点正则知识,再就是多测试了:-) 下面邮箱正则: 中划线:中划线域名就是米农口中说的扁担域名了,扁担域名由于输入比较麻烦,看起来也比较不正规,是没有多大的价值,目前投资的人是比较少的.按照DNS的标准,域名是不允许有下划线的. 下划线:一些人在注册用户名的喜欢使用下划线_,这种用户名在登录邮箱时很麻烦,给你发邮件的人也很不方便. 二级域名邮箱基本被消灭,这个哥们的正则可以写下划线,扩大

php与js邮箱验证正则表达式

PHP 邮箱验证正则表达式    代码如下 复制代码 preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email ); PHP 邮箱验证正则表达式示例  代码如下 复制代码 <?php function isEmail($email){  if(preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email )