日期验证的正则表达式,兼容性很强

博主在开发WEB时经常处理日期字符串,今日上午测试了Javascript中检测日期字符串的正则表达式并进行整理,还打算过几天建立日期类的类库,文中给出了完整的检测日期字符串的代码。

今天上午就在测试一个关于Javascript中检测日期字符串的正则表达式,因为在开发WEB中,经常会处理日期字符串,一直没时间好好整理,现在开始整理,今天先完成了正则表达式,过几天再建立关于日期类的类库.完整代码如下:

<SCRIPT language=javascript>
<!--
 /*
 * 函数: parseDate
 * 说明: 解释日期字符串
 * 参数:
 *   无
 * 修改: 2005.06.04
 */

function parseDate(src){
 var CST_ERROR = "Invalid Date String!";
 var datePat = /^(/d{2}|/d{4})(//|/-|/u5E74)(/d{1,2})(//|/-|/u6708)(/d{1,2})(/u65E5){0,1}((/u0020)(/d{1,2})(/:|/u65F6)(/d{1,2})((/:|/u5206)(/d{1,2})(/u79D2){0,1}((/u0020)(/d{1,3})){0,1}(/u6BEB/u79D2){0,1}){0,1}){0,1}$/;
  var matchArray = src.match(datePat);
  try{
  if (matchArray == null) {
   throw CST_ERROR;
  }
  var y = parseInt(matchArray[1]);
  var m = parseInt(matchArray[3]);
  var d = parseInt(matchArray[5]);
  var h = matchArray[9];
  var n = matchArray[11];
  var s = matchArray[14];
  var l = matchArray[18];
  
  h = (h.trim() == "") ? 0 : parseInt(h);
  n = (n.trim() == "") ? 0 : parseInt(n);
  s = (s.trim() == "") ? 0 : parseInt(s);
  l = (l.trim() == "") ? 0 : parseInt(l);
  
   if (isValidYMD(y, m, d) && h.isBetween(0, 23) && n.isBetween(0, 59) && s.isBetween(0, 59) && l.isBetween(0, 999)){
   return new Date(y, (m-1), d, h, n, s, l);
   }
   else{
   throw CST_ERROR;
   }
  }
  catch(e){
  //alert(e);
  return null;
  }
}
//-->
</SCRIPT>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值