您的位置:首页 > Web前端 > JavaScript

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

2005-06-09 23:18 337 查看
今天上午就在测试一个关于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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息