在js里數據類型是弱定義的﹐并沒有明確的日期型﹐不過要判斷字串是否符合日期型可以這樣function isDate(str){
var reg = /^(\d{4})(-|\/)(0?[1-9]|1[0-2])(-|\/)(0?[1-9]|[12][0-9]|3[01])$/g;
var r = reg.exec(str);
if(r==null){return false;}
var d = new Date(r[1], r[3]-1,r[5]);
//以下是為了兼容2000/02/02這種前面補零的
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
var reg=/(\/|-)(0*)( *)([1-9])/g
var t=s.value.replace(reg,'$1$4')
if (newStr==t){return true;}
return false;
}
var reg = /^(\d{4})(-|\/)(0?[1-9]|1[0-2])(-|\/)(0?[1-9]|[12][0-9]|3[01])$/g;
var r = reg.exec(str);
if(r==null){return false;}
var d = new Date(r[1], r[3]-1,r[5]);
//以下是為了兼容2000/02/02這種前面補零的
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
var reg=/(\/|-)(0*)( *)([1-9])/g
var t=s.value.replace(reg,'$1$4')
if (newStr==t){return true;}
return false;
}
解决方案 »
- 求美观一点的帮助页面代码(就是跳转时的错误页面代码)在线等...
- 有人用过EsFtp 的控件吗?有点问题
- 关于层在窗体中的移动
- 大侠指点一下,web打印iframe页的问题
- 简单脚本问题,来者有分.
- JS 动态创建DIV(IE8没问题)Google chrome提示:Uncaught TypeError: Illegal invocation
- 创建对象错误处理
- javascript与c#代码之间的交互问题。
- 如何将"04-Apr-2005"转换成"04-04-2005"和"2005-04-04"???
- 请问showModalDialog产生的弹出窗如何提交到自身?
- ★★求一个树,要求可以让用户右键点击某节点,弹出增加、删除菜单!功能最好完备一些★★
- 能动态改变网页的标题吗?在线等!
function isTime(str)
{
var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
if (a == null) {alert('输入的参数不是时间格式'); return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
alert("时间格式不对");
return false
}
return true;
}
2.2 短日期,形如 (2003-12-05)
function strDateTime(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
2.3 长时间,形如 (2003-12-05 13:04:06)
function strDateTime(str)
{
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}