使用javascript自动格式化日期格式

夜猫子

我有一些JavaScript可以将用户输入自动格式化为SSN(ddd-dd-dddd),但我无法将此脚本转换为支持日期格式(mm / dd / yyyy)

    var val = this.value.replace(/\D/g, '');
    var newVal = '';
    if (val.length > 4) {
        this.value = val;
    }
    if ((val.length > 3) && (val.length < 6)) {
        newVal += val.substr(0, 3) + '-';
        val = val.substr(3);
    }
    if (val.length > 5) {
        newVal += val.substr(0, 3) + '-';
        newVal += val.substr(3, 2) + '-';
        val = val.substr(5);
    }
    newVal += val;
    this.value = newVal;

有人可以解释它是如何工作的,并向我展示如何将其转换为我的日期格式吗?

多诺万

您发布的代码从中删除所有非数字字符this.value,然后根据字符串的长度在正确的位置添加“-”。

这是我尝试的一种更易于理解的日期版本:

function insertString(originalString, newString, index) {
    return originalString.substr(0, index) + newString + originalString.substr(index);
}

function formatDate(dateString) {
    var cleanString = dateString.replace(/\D/g, ''), // Removes all non-numeric characters
        output = cleanString.substr(0, 8), // Limit to 8 digits
        size = dateString.length;

    if (size > 4)
        output = insertString(output, '/', 4);

    if (size > 2)
        output = insertString(output, '/', 2);

    return output;
}

然后,在处理程序中,您只需要执行以下操作:

this.value = formatDate(this.value);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章