例1
验证YYYY-MM-DD日期格式,不能验证“2012-11-45”之类的不正确的日期
代码如下 |
复制代码 |
<script language="javascript">
function formatTime(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]);
}
function CheckData(cform){
if (document.vbform.bdaynew.value=="")
{
alert("截止日期不能为空,请输入!");
document.vbform.bdaynew.focus();
return false;
}
if (!formatTime(cform.bdaynew.value))
{
alert("截至日期格式错误!");
cform.bdaynew.focus();
return false;
}
return true;
}
</script>
<form name="vbform" onSubmit="return CheckData(this);">
<input name="bdaynew" type="text" size="25" class="input">
<span style="color:#FF0000">时间格式为2007-01-01或2007-1-1</span>
</form>
|
如果我人是2013/01/01这种格式呢,
代码如下 |
复制代码 |
//判断input是否符是日期
function isDateString(sDate)
{
var mp=/d{4}-d{2}-d{2}/;
var matchArray = sDate.match(mp);
if (matchArray==null) return false;
var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
var iaDate = new Array(3);
var year, month, day;
iaDate = sDate.split("/"); //这里我们可以自动修改-也是可以:也可以哦。
year = parseFloat(iaDate[0])
month = parseFloat(iaDate[1])
day=parseFloat(iaDate[2])
if (year < 1900 || year > 2100) return false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
if (month < 1 || month > 12) return false;
if (day < 1 || day > iaMonthDays[month - 1]) return false;
return true;
}
|
使用
if(!isDateString(complete_date))
{
alert("实际完成日期格式不正确,日期格式为yyyy-mm-dd");
return;
}
长时间,形如 (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]);
}
|
|