随笔-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 金大为 阅读(1370) 评论(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 | -

只有注册用户登录后才能发表评论。


网站导航: