Java Script判断输入的日期格式,在线等

zgycsmb 2013-06-26 04:28:22

写一段Java Script程序对以下程序的用户输入日期的有效性进行判断,如果格式错误就提示用户。在程序的恰当位置注明怎样调用你的程序。日期格式为:年年年年月月天天小时,例如 2003010812。

请在下面的程序中写入javascript代码
<html>
<head>
<title>NewPage1</title>
</head>
<body>
<form method="POST" action=""> <p>查询日期

(yyyymmddhh):<br>
从<input type="text" name="DateFrom" size="20"><br>
到<input type="text" name="DateTo" size="20"></p><p>
</form>
</body>
</html>

thanks
...全文
208 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2013-06-26
  • 打赏
  • 举报
回复
var reg = /^(\d{4})(\d{2})(\d{2})(\d{2})$/;这是正侧意思是字符串必须是10个数字组成,并且把它们分割成4组,因为要用match去匹配并提取成result[1] result[2] result[3] result[4] 分别判断。 result[1]+result[2]+result[3] 必须是正确的年月日格式 result[4]必须是小于24的数
zgycsmb 2013-06-26
  • 打赏
  • 举报
回复
3楼的 var reg = /^(\d{4})(\d{2})(\d{2})(\d{2})$/; var result = str.match(reg); 这些是什么意思呢,能解释下吗,
scscms太阳光 2013-06-26
  • 打赏
  • 举报
回复
<form method="POST"  action="">  <p>查询日期(yyyymmddhh):<br>
    从<input type="text"  name="DateFrom" size="20" onblur="fun(this)"><br>
    到<input type="text"  name="DateTo" size="20" onblur="fun(this)"></p><p>
</form>
<script type="text/javascript">
    function fun(obj){
        if(!isDate(obj.value)){
            alert("日期格式错误!");
            obj.value="";
        }
    }
    function isDate(str){
        var reg = /^(\d{4})(\d{2})(\d{2})(\d{2})$/;
        var result = str.match(reg);
        if(result == null||parseFloat(result[4])>23)return false;
        var t=result[1]+","+parseFloat(result[2])+","+parseFloat(result[3]);
        var d = new Date(result[1],result[2]-1,result[3]);
        var newStr = d.getFullYear()+","+parseFloat(d.getMonth()+1)+","+parseFloat(d.getDate());
        return t == newStr;
    }
</script>
卡布洛 2013-06-26
  • 打赏
  • 举报
回复
function IsValidDate(DateStr)   
{   
    var sDate=DateStr.replace(/(^\s+|\s+$)/g,''); //去两边空格;   
    if(sDate=='') return true;   
    //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''   
    //数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式   
    var s = sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,'');   
    if (s=='') //说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D   
    {   
        var t=new Date(sDate.replace(/\-/g,'/'));   
        var ar = sDate.split(/[-/:]/);   
        if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())   
        {   
            //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');   
            return false;   
        }   
    }   
    else   
    {   
        //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');   
        return false;   
    }   
    return true;   
}   
  • 打赏
  • 举报
回复
选择时间:<input editable="false" name="StartTime" id="StartTime" style="width: 150px"
            class="easyui-datebox" type="text" /><span style="margin: 2px">至</span>
        <input name="EndTime" id="EndTime" editable="false" style="width: 150px" class="easyui-datebox" type="text" />
在easyui里有日历控件,你单纯用文本框的话,验证起来忒麻烦了

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧