如何用脚本判断用户输入的的字符串是下面的时间格式2004-11-21 必须要保证用户的输入是此格式,并且是时间,比如说月份不大于12等等,另外我需要用户输入两个,并且后一个要比前一个晚,只允许用JAVASCRIPT,请详细帮助作答,
提示:可用正则表达式提前判断一下格式,然后提取各时间字段内容
完成方法:
首先要在Eclipse中配置apache的tomcat服务器,能够测试网页内容
再Eclipse中创建 dynamic web project项目
项目中创建一个html文件index.html
其中实现日期格式的判定,使用的是正则表达式 /^d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]d|3[0-1])$/
/ ... / 表示js中的字符串开始,相当于java中的 “”
^ 表示正则开始 以d{4}开始 表示以4个数字开头
- 表示其本身 -
(0?[1-9]|1[0-2]) 0?表示有0个或1个0 [1-9]表示1到9中的某个数 | 表示或者 d表示一个数字 3[0-1]表示30或31
index.html代码如下,当中包含js脚本 窗口载入即调入此脚本,点击submit即调用相应函数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> window.onload=function(){ alert("窗口载入.."); document.getElementById("form1").onsubmit=function(){//此处通过id找到网页元素,该网页元素提交即调用函数 alert("点击提交即调用函数......"); var d1=this.d1.value; //此处通过id和name都可以找到 var d2=this.d2.value; if(!verifyDate(d1)){ alert("核实结果,第一个日期格式不对"); return false; } if(!verifyDate(d2)){ alert("核实结果,第二个日期格式不对"); return false; } if(compareDate(d1,d2)){ alert("第二个日期大于第一个"); return false; }else{ alert("第二个日期小于第一个"); return false; } }; } function verifyDate(d){ var datePattern=/^d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]d|3[0-1])$/; return datePattern.test(d); } function compareDate(d1,d2){ var arrayD1=d1.split("-"); var arrayD2=d2.split("-"); var date1=new Date(arrayD1[0],arrayD1[1],arrayD1[2]); var date2=new Date(arrayD2[0],arrayD2[1],arrayD2[2]); if(date2>date1){ return true; }else{ return false; } } </script> </head> <body> JavaScript <form action="index.html" id="form1"> <input type="text" id="d1"> <input type="text" id="d2"> <input type="submit"> </form> </body> </html>