如题:在JS中有效日期的正则判断的案例
-------------------
function isDate(val) { //2012-08-31 or 2102-8-31 //var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; //2012-08-31、2102-8-31 、2102/08/31 or 2102/8/31 var reg = /^(\d{4})(-|\/)?(\d{1,2})\2(\d{1,2})$/; var valueDate = val.match(reg); if (valueDate == null) { //alert("Sorry. You need input a right date!"); return false; } var newDate = new Date(valueDate[1], valueDate[3]-1, valueDate[4]); //error data:0000-08-31 if (!(newDate.getFullYear() == valueDate[1] && (newDate.getMonth() + 1) == valueDate[3] && newDate.getDate() == valueDate[4])) { //alert("Sorry. You need input a right date!"); return false; } return true; }
----------------------
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<script src="util.js" type="text/javascript"></script>
<title>date test</title>
</head>
<body>
<label for="textinput1">Date input:</label>
<input type="text" name="date" id="datetext" onChange="isDate(document.getElementById('datetext').value)"/>
</body>
</html>