我有这个样本:
代码HTML:
<input id="date_of_birth" type="text" value="23091992" maxlength="8">
CODE JS:
$( "#date_of_birth" ).keyup(function() {
var str=$(this).val();
var day_str=str.substring(0,2);
var month_str=str.substring(2,3);
console.log(day_str);
console.log(month_str);
});
我输入的值为
23091992
运行脚本后我想要做什么,我的文本格式如下。
23/09/1992
我试图分享我强大的两个并添加一个分隔符,但不幸的是我无法管理... 请问你能解决这个问题吗?
提前致谢!
答案 0 :(得分:0)
你快到了。但相反,您可以使用:
<input type="date" />
或者有很多可用的datepicker插件。如果你想这样做,那么这就是解决方案:
$( "#date_of_birth" ).keyup(function() {
var str=$(this).val();
var day_str=str.substring(0,2);
var month_str=str.substring(2,4);
var year_str=str.substring(4,8);
console.log(day_str);
console.log(month_str);
console.log(year_str);
if ($(this).val().trim().length == 8)
$(this).val(day_str + "/" + month_str + "/" + year_str);
});
<强>段强>
$("#date_of_birth").keyup(function() {
var str = $(this).val();
var day_str = str.substring(0, 2);
var month_str = str.substring(2, 4);
var year_str = str.substring(4, 8);
console.log(day_str);
console.log(month_str);
console.log(year_str);
if ($(this).val().trim().length == 8)
$(this).val(day_str + "/" + month_str + "/" + year_str);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="date_of_birth" type="text" value="23091992" maxlength="8">
Press up or down. Trigger a keyup.
答案 1 :(得分:0)
你当然应该使用日期选择器或一些js掩盖输入, 但是......检查一下
$("#date_of_birth").keyup(function() {
var t = $(this),
inpVal = t.val();
//clean from previous / slashes
inpVal = inpVal.replace(/\//g, '');
t.val(inpVal);
// check if 8 digits entered (2day, 2month, 4year)
if (inpVal.length == 8) {
var day_str = inpVal.substring(0, 2),
month_str = inpVal.substring(2, 4),
year_str = inpVal.substring(4),
formDate = day_str + "/" + month_str + "/" + year_str;
t.val(formDate);
}
});
答案 2 :(得分:0)
您可以尝试这样的事情:
DDMMYYYY
3
,请检查最后2位数字是否= = 12。如果是,请将其视为月份,否则将前2作为日期,最后作为月份。
function getFormattedDate(date, seperator) {
var len = date.length;
var year = date.substring(len - 4);
var monthAndDate = date.substring(0, len - 4);
var day, month;
if (!seperator) {
seperator = "/";
}
switch (monthAndDate.length) {
case 2:
day = monthAndDate.charAt(0);
month = monthAndDate.charAt(1);
break;
case 3:
if (parseInt(monthAndDate.substring(1)) <= 12) {
day = monthAndDate.charAt(0);
month = monthAndDate.substring(1);
} else {
day = monthAndDate.substring(0, 2);
month = monthAndDate.charAt(2);
}
break;
case 4:
day = monthAndDate.substring(0, 2);
month = monthAndDate.substring(2);
break;
}
return day + seperator + month + seperator + year;
}
(function() {
var date = "23091992";
console.log(getFormattedDate(date, "/"));
date = "1111992";
console.log(getFormattedDate(date, "-"));
date = "111992"
console.log(getFormattedDate(date));
})()
&#13;