如何调用js来验证日期格式
代码是这样的
<script type="text/javascript">
function isDate(dateStr) {
var datePat = /^(\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;
var matchArray = dateStr.match(datePat);
if (matchArray == null) alert(" 时间格式不正确"); return false;
var month = matchArray[3];
var day = matchArray[5];
var year = matchArray[1];
if (month < 1 || month > 12) alert(" 时间格式不正确"); return false;
if (day < 1 || day > 31) alert(" 时间格式不正确"); return false;
if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) alert(" 时间格式不正确"); return false;
if (month == 2) {
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day == 29 && !isleap)) alert(" 时间格式不正确"); return false;
}
return true;
}
</script>
<asp:TextBox ID="txtKdate" runat="server" onblur="isDate(txtKdate.Text)"></asp:TextBox>
这样写不行,好像从onblur="isDate(txtKdate.Text)"调用不了isdate这个function
------解决方案--------------------
onblur="isDate(this.value)"
------解决方案--------------------<asp:TextBox ID="txtKdate" runat="server" onblur="isDate(txtKdate.Text)"></asp:TextBox>
Js里面 是取不到这个文本框的值的。
调用改为:isDate(this)
isDate 函数里面
function isDate(dateStr) {
dateStr=document.getElementById(dateStr);
var datePat = /^(\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;
var matchArray = dateStr.match(datePat);
if (matchArray == null) alert(" 时间格式不正确"); return false;
var month = matchArray[3];
var day = matchArray[5];
var year = matchArray[1];
if (month < 1 || month > 12) alert(" 时间格式不正确"); return false;
if (day < 1 || day > 31) alert(" 时间格式不正确"); return false;
if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) alert(" 时间格式不正确"); return false;
if (month == 2) {
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day == 29 && !isleap)) alert(" 时间格式不正确"); return false;
}
return true;
}