你那输入框里是含有'YYYY-MM-DD'格式的日期字符还是只有日期?
解决方案 »
- 请问JavaScript能产生键盘行为吗?比如按住按钮相当于某个键盘按键被按下
- http://nssug.baidu.com/su?wd=123&prod=superpage得不到数据
- iframe 子页面如何引用父页面中引用的js和css?
- 两个div的问题。请教
- extjs combobox加载问题
- 怎样拿到Viewprot中的 east对象,来控制它show和 hide
- 大家好,请问如何用VML画线的缓冲区?谢谢
- 从一字符串中得出IP:端口,用正则更好
- 在线等待:浏览asp页面时,出现下面警告:document.myform.room不是对象,请问怎么解决
- =============return false 不起作用了=============================
- 表格内某一行的定位问题
- 网页播放mp3,怎么判断mp3开始播放???????????
function check()
{
var s=form1.t1.value;
var re=/^[1-9]\d{3}(?:\-|\/)(0[1-9]|1[0-9])(?:\-|\/)(0[1-9]|[1-2][0-9]|[3][0-1])$/;
if(!re.test(s))
{
alert("输入的日期格式错误,请重新输入\n格式为:YYYY-MM-DD或YYYY/MM/DD");
}}
</script>
<form name=form1>
<input name="t1" >
<input value=test type=button onclick=check()></form>
String.prototype.IsDate=function()
{
var str=this;
var reg =/^(\d+)-(\d{1,2})-(\d{1,2})$/;
var r=str.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d=new Date(r[1],r[2],r[3]);
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
return true;
}/*用法:
if (document.all[yourvalue].value.IsDate)
{
alert('is date');
}
*/
</script>
<type=button>
虽然判断了,但是这个不能提交数据啊
<script language=javascript>
String.prototype.IsDate=function()
{
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok? if (matchArray == null) {
return false;
} month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[5]; if (month < 1 || month > 12) { // check month range
return false;
} if (day < 1 || day > 31) {
return false;
} if ((month==4 || month==6 || month==9 || month==11) && day==31) {
return false;
} if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
return false;
}
}
return true;
}
function check()
{
if(!form1.t1.value.IsDate)
{
alert("输入的日期型数据有错\n请重新输入\n格式为:MM-DD-YYYY或MM/DD/YYYY"
return false;
}
//在这里还可以做其它的检测 form1.submit();//最后无错后提交
}</script><form name=form1>
<input name="t1" >
<input value=test type=button onclick=check()></form>
<script language=javascript>
String.prototype.IsDate=function()
{
var dateStr=this;
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok? if (matchArray == null) {
return false;
} month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[5]; if (month < 1 || month > 12) { // check month range
return false;
} if (day < 1 || day > 31) {
return false;
} if ((month==4 || month==6 || month==9 || month==11) && day==31) {
return false;
} if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
return false;
}
}
return true;
}
function check()
{ if(!form1.t1.value.IsDate())
{
alert("输入的日期型数据有错\n请重新输入\n格式为:MM-DD-YYYY或MM/DD/YYYY")
return false;
}
// 在这里还可以做其它的检测 form1.submit();//最后无错后提交
}</script><form name=form1>
<input name="t1" >
<input value=test type=button onclick=check()></form>
刚刚发现除了用Javascript验证,还可以在asp内用IsDate()函数用可以搞定,更简单。
再次谢谢各位。