js检查时间输入格式是否正确

<script type="text/javascript">
        $(document).ready(function () {
            $("#tb_beginDate").change(function () {
                isDate($(this).val(), "tb_beginDate")
            });

            $("#tb_endDate").change(function () {
                isDate($(this).val(), "tb_endDate")
            });
        });


        function isDate(dateStr,id) {
           var date = dateStr.replace(/(^\s*)|(\s*$)/g,"");     //替换输入内容当中所有的空字符,包括全角空格,半角空格
           if (date == null || date == "") {

           } else {
              //如果输入文本框中有内容
               if (date.match(/^\d{8}$/)) {//验证是8位数的数字
                   var s;
//转换成YYYY/MM/DD的格式 s
= date.substring(0, 4) + '/' + date.substring(4, 6) + '/' + date.substring(6, 8); document.getElementById(id).value = s checkDate(s,id) } else { checkDate(date,id) } } } function checkDate(str, id) {//判断输入的是否是时间类型 var date = new Date(str); var y = date.getYear(); var m = date.getMonth() + 1; var d = date.getDate(); if (str.length == 8) { var myday = y + "/" + m + "/" + d; var d = y + "/" + patch(m) + "/" + patch(d); document.getElementById(id).value = d } if (str.length == 10) { var myday = y + "/" + patch(m) + "/" + patch(d); } if (myday != str) { if (id == "tb_beginDate") { alert("対象年月日(自)が不正です。"); document.getElementById(id).value = "" } if (id == "tb_endDate") { alert("対象年月日(至)が不正です。") document.getElementById(id).value = "" } } } function patch(n) { return (n - 10 < 0) ? ("0" + n) : ("" + n); } </script>

此代码可以达到的效果是输入YYYYMMDD,YYYY/MM/DD,YYYY/M/D的时间格式均可以入力成功,当输入YYYYMMDD,YYYY/M/D的格式时文本框中的内容将自动转换成YYYY/MM/DD的格式

这些内容是结合别的网友的代码改编程成我需要的功能

posted @ 2013-11-30 13:23  xm3530  阅读(476)  评论(0编辑  收藏  举报