2011-09-05 147 views
0

在這裏(http://jsfiddle.net/prL83/)如何更改正常數字格式到日期格式?更改爲日期格式。

鍵入日期從右到左dir="rtl"這種格式,YYYY/MM/DD

  1. 第一類型的天(DD
  2. SECEND鍵入月份(MM
  3. 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) });

回答

0

這項工作?

$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++; 
       } 
      } 
     } 
    } 
}); 
+0

在本示例中,在結束後添加斜槓類型如下:'00000000 =在結束輸入=> 0000/00/00之後。確實可以在打字時添加斜線,而不是在結束輸入值8後添加斜線? –

+0

Selena,更改了代碼,請現在查看。 –

+0

這個改變不是我的意思,我不想在結束輸入值8後添加斜槓'/'。我想在輸入過程中加入斜槓(輸入時,不輸入)。這是你的樣本:http://jsfiddle.net/prL83/41/ –