隨筆-57  評論-129  文章-0  trackbacks-0
          今天和網友聊起在javascript里面實現DateFormat 的話題。

          把想法發布一下,當是筆記。

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

            4、將新數組join。即為需要結果。

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




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

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

          評論:
          # re: 正則表達式實現JavaScript日期格式化的想法。 2007-06-07 16:30 | 金大為
          yyyy MM dd 的處理對象可以根據首字母確定,長度可以作為處理函數的參數,這樣,減少對象數目。維護起來方便一點。  回復  更多評論
            
          # re: 正則表達式實現JavaScript日期格式化的想法。 2007-06-07 16:36 | trydofor
          提交一個想法:字符串替換法:)
          1.構造一個字典,里面定義可能出現的字符串元
          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: 正則表達式實現JavaScript日期格式化的想法。 2007-06-08 13:35 | -
          主站蜘蛛池模板: 拉萨市| 甘谷县| 方山县| 无锡市| 克东县| 梧州市| 皮山县| 临猗县| 博爱县| 普定县| 新源县| 鸡西市| 安乡县| 三江| 和田市| 九龙县| 田林县| 庐江县| 奈曼旗| 道孚县| 通许县| 达拉特旗| 榆林市| 当阳市| 天气| 曲松县| 和顺县| 措美县| 北辰区| 五华县| 海原县| 江源县| 古蔺县| 安塞县| 西藏| 旅游| 手游| 大名县| 榆树市| 临海市| 孙吴县|