隨筆-57  評論-129  文章-0  trackbacks-0
          今天和網(wǎng)友聊起在javascript里面實現(xiàn)DateFormat 的話題。

          把想法發(fā)布一下,當是筆記。

          格式化:
            1、先用正則把日期表達式分段:
              var tokens = "yyyy-MM-dd(沒有時間)".match(/y+|M+|d+|m+|[^yMdm]+/g)
              //結果數(shù)組為:yyyy,-,MM,-,dd,(沒有時間)
            2、將其中的yyyy MM dd 替換成相映的處理對象
           
            3、格式化時,先復制數(shù)組,依次遍歷,如果元素是處理對象,那么元素值替換成處理結果。

            4、將新數(shù)組join。即為需要結果。

            5、parse時。先復制數(shù)組,若元素為字符串,精確匹配。若未處理對象,讀取需要的值,匹配失敗,則終止操作,返回結果。




          想法而已,實際實現(xiàn)時可能還有很多現(xiàn)在無法意料的事情:)

          posted on 2007-06-07 16:27 金大為 閱讀(1400) 評論(3)  編輯  收藏 所屬分類: JavaScript

          評論:
          # re: 正則表達式實現(xiàn)JavaScript日期格式化的想法。 2007-06-07 16:30 | 金大為
          yyyy MM dd 的處理對象可以根據(jù)首字母確定,長度可以作為處理函數(shù)的參數(shù),這樣,減少對象數(shù)目。維護起來方便一點。  回復  更多評論
            
          # re: 正則表達式實現(xiàn)JavaScript日期格式化的想法。 2007-06-07 16:36 | trydofor
          提交一個想法:字符串替換法:)
          1.構造一個字典,里面定義可能出現(xiàn)的字符串元
          2.把1中的字典key對應的value初始化
          3.replace

          偽代碼:
          function format(string,date)
          {

          datefields={};
          datefields.yyyy=2007;
          datefields.yy=07;
          datefields.MMMMM="June";
          datefields.MMM="JUN";
          datefields.MM="06";

          for(var k in datefields)
          {
          while(string.indexOf(k)>=0)
          string = string.replace(k,datefields[k]);
          }
          return string;
          }  回復  更多評論
            
          # re: 正則表達式實現(xiàn)JavaScript日期格式化的想法。 2007-06-08 13:35 | -
          主站蜘蛛池模板: 凉山| 岑溪市| 资源县| 黑水县| 利津县| 磴口县| 平远县| 尼勒克县| 黔西县| 页游| 宿松县| 永顺县| 体育| 阳曲县| 含山县| 赣榆县| 平度市| 洮南市| 常州市| 尚义县| 通江县| 南溪县| 民权县| 林西县| 从江县| 靖安县| 西和县| 宾阳县| 喀喇沁旗| 武胜县| 法库县| 固始县| 甘泉县| 吴江市| 泌阳县| 江口县| 南宫市| 庆安县| 卢氏县| 新密市| 肇庆市|