使用javascript自动设置输入的最新格式
我有一些javascript可以将用户输入自动格式化为SSN(ddd) 我无法将此脚本转换为支持日期格式(mm/dd/yyyy)使用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
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);