javascript - 如何测试输入的2位数字的年月日是否有效?

标签 javascript jquery date

在我的表单中,用户可以这样输入日期:220875(日、月、年)。

一旦他们输入了详细信息,我想测试日期是否有效:

  1. 月份是从 1 到 12(含)。
  2. 输入的日期对指定月份有效。

我如何确定这些值是否正确且匹配?

这是我的尝试:(摘录)

DateIsOk:function(value) { //220875 for example
        var formatValue = value.match(/.{1,2}/g), //splting as 22 08 75
         fieldDate = parseInt(formatValue[0]), //converting to num
         fieldMonth = parseInt(formatValue[1]),
         fieldYear = parseInt(formatValue[2]),
         dayobj = new Date();

        //test need to go here...
    }

如果有帮助,这里是Live Demo .

最佳答案

看来您使用的是 DD/MM/YYYY 格式。

因此您可以轻松使用这个现成的代码:http://www.qodo.co.uk/blog/javascript-checking-if-a-date-is-valid/

JavaScript

// Checks a string to see if it in a valid date format
// of (D)D/(M)M/(YY)YY and returns true/false
function isValidDate(s) {
    // format D(D)/M(M)/(YY)YY
    var dateFormat = /^\d{1,4}[\.|\/|-]\d{1,2}[\.|\/|-]\d{1,4}$/;

    if (dateFormat.test(s)) {
        // remove any leading zeros from date values
        s = s.replace(/0*(\d*)/gi,"$1");
        var dateArray = s.split(/[\.|\/|-]/);

        // correct month value
        dateArray[1] = dateArray[1]-1;

        // correct year value
        if (dateArray[2].length<4) {
            // correct year value
            dateArray[2] = (parseInt(dateArray[2]) < 50) ? 2000 + parseInt(dateArray[2]) : 1900 + parseInt(dateArray[2]);
        }

        var testDate = new Date(dateArray[2], dateArray[1], dateArray[0]);
        if (testDate.getDate()!=dateArray[0] || testDate.getMonth()!=dateArray[1] || testDate.getFullYear()!=dateArray[2]) {
            return false;
        } else {
            return true;
        }
    } else {
        return false;
    }
}

关于javascript - 如何测试输入的2位数字的年月日是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24546933/

相关文章:

javascript - React/Redux,链式或 reducer 中的 promise

javascript - Tinymce 右键单击​​粘贴鼠标启用

javascript - Openlayers 3 是否可以进行多个选择交互?

jQuery DataTables 可编辑 - 空值时只读

r - 按日期范围分组

javascript - 如何使用 vanilla JS 观察加载时的元素大小并调整窗口大小?

javascript - 如何使用 JavaScript/css 更改 html div 样式 z-index 值

javascript - jquery函数中的目标AJAX id

java - 在 jtable 中设置空日期

java - 创建函数以便当前日期以字符串格式显示且没有时间戳的最有效方法是什么?