Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript自动设置输入的最新格式_Javascript - Fatal编程技术网

使用javascript自动设置输入的最新格式

使用javascript自动设置输入的最新格式,javascript,Javascript,我有一些javascript可以将用户输入自动格式化为SSN(ddd) 我无法将此脚本转换为支持日期格式(mm/dd/yyyy) var val=this.value.replace(/\D/g'); var newVal=''; 如果(值长度>4){ this.value=val; } 如果((val.length>3)和(&(val.length5){ newVal+=val.substr(0,3)+'-'; newVal+=val.substr(3,2)+'-'; val=val.subs

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

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

有人能解释一下这是如何工作的,并告诉我如何将其转换为我的日期格式吗?

您发布的代码删除了
此.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);

在不同的情况下,可以看看矩.js库。很多操作日期的功能。
this.value = formatDate(this.value);