更改为日期格式。
问题描述:
在这里(http://jsfiddle.net/prL83/)如何更改正常数字格式到日期格式?更改为日期格式。
键入日期从右到左dir="rtl"
这种格式,YYYY/MM/DD
。
- 第一类型的天(
DD
)
- SECEND键入月份(
MM
)
-
THRID输入年份(
YYYY
)$( 'find_input')。代表(“input.numeric:text”,'keyup',function(){val {0} = $(this).val()。match(/ [0-9]/g).reverse()。join(“ ).match(/ [0-9] {1,3}/g).join(“,”)。match(/./g).reverse()。join(“”); $(this).val($ val) });
答
这项工作?
$dateSet = 0;
$monthSet = 0;
$yearSet = 0;
$('.find_input').delegate("input.numeric:text", 'keyup', function() {
$val = $(this).val().replace(/[^\d]+/g, "").match(/\d{1,12}$/);
if($val == null) {
return;
} else {
$val = $val.join("");
}
if($(this).val().match(/\d{4,}$/) && $val.length%2 == 0) {
$val = $val.match(/\d{2}/g);
if($yearSet < $monthSet) {
if($val.length == 4) {
$(this).val($val.join("").replace(/(\d{2})(\d{2})(\d{4})$/,'$3/$1/$2'));
$yearSet++;
} else if($val.length == 6){
$(this).val($val.join("").replace(/(\d{4})(\d{2})(\d{2})(\d{4})$/,'$4/$2/$3'));
$yearSet++;
}
} else {
if($monthSet < $dateSet) {
$(this).val($val.join("").replace(/(\d{4})(\d{2})(\d{2})(\d{2})$/,'$1/$4/$3'));
$monthSet++;
} else {
if($val.length == 2) {
$(this).val($val.reverse().join("/"));
$dateSet++;
$monthSet++;
} else {
$(this).val($val.join("").replace(/(\d{4})(\d{2})(\d{2})(\d{2})$/,'$1/$2/$4'));
$dateSet++;
}
}
}
}
});
在本示例中,在结束后添加斜杠类型如下:'00000000 =在结束输入=> 0000/00/00之后。确实可以在打字时添加斜线,而不是在结束输入值8后添加斜线? –
Selena,更改了代码,请现在查看。 –
这个改变不是我的意思,我不想在结束输入值8后添加斜杠'/'。我想在输入过程中加入斜杠(输入时,不输入)。这是你的样本:http://jsfiddle.net/prL83/41/ –