在更改事件中,将两位数字的年份转换为当前年份

时间:2019-06-14 03:40:11

标签: javascript datetime

将具有两位数字年份的更改事件的文本框值转换为日期被视为当前年份

如果用户输入的日期等于当前日期,则我正在清除我的文本框。 我有一个文本框,以日期(06-13-1999)/(06/13/1999)格式表示。自从我使用on Change事件开始输入4位年份之前,Javascript本机日期功能将2位年份转换为当年并清除了文本框。

因此,我目前正在使用通过拆分输入日期date.split('/')[2] .length = 4的条件,这似乎很乏味,因为现在我需要两个拆分函数以允许不同的日期格式。

if (dob.split('/')[2].length == 4 || dob.split('-')[2].length == 4)
{
    ndob = new Date(dob);
    ndob = formatdate(ndob);
}

在变更事件发生时还有其他方法可以处理

2 个答案:

答案 0 :(得分:0)

您可以使用正则表达式同时处理这两种情况:

if (dob.split(/\/|-/).length === 4) {

答案 1 :(得分:0)

您可以检查文本框val的长度,如果它是10,则仅执行您的代码。

document.querySelector('input').addEventListener('keyup', function() {
    const val = this.value;
    if(val.length===10) {
        console.log('valid date');
    }
})
    <input type="text">