jquery.tablesorter addParser for “26 Jul”日期格式

发布于 2024-10-16 02:48:48 字数 890 浏览 1 评论 0原文

我想对如下所示的日期进行排序: 7 月 26 日

这是我添加解析器的尝试:

       var lMonthNames = {};
lMonthNames["Jan"] = "01";
lMonthNames["Feb"] = "02";
lMonthNames["Mar"] = "03";
lMonthNames["Apr"] = "04";
lMonthNames["May"] = "05";
lMonthNames["Jun"] = "06";
lMonthNames["Jul"] = "07";
lMonthNames["Aug"] = "08";
lMonthNames["Sep"] = "09";
lMonthNames["Oct"] = "10";
lMonthNames["Nov"] = "11";
lMonthNames["Dec"] = "12";

ts.addParser({
  id: 'monthDay',
  is: function(s) {
    return false;
  },
  format: function(s) {
    if (s.length > 0) {
      var date = s.match(/^(\d{1,2})[ ](\w{3})[ ](\d{4})$/);
      var m = lMonthNames[date[2]];
      var d = String(date[1]);
      if (d.length == 1) {d = "0" + d;}
      return '' + m + d;
    } else {
      return '';
    }
  },
  type: 'numeric'
});

但是 firebug 控制台告诉我日期为空 var m = lMonthNames[日期[2]]; 你能说出为什么它没有价值吗?

I want to sort dates which look like this:
26 Jul

This is my attempt at adding a parser:

       var lMonthNames = {};
lMonthNames["Jan"] = "01";
lMonthNames["Feb"] = "02";
lMonthNames["Mar"] = "03";
lMonthNames["Apr"] = "04";
lMonthNames["May"] = "05";
lMonthNames["Jun"] = "06";
lMonthNames["Jul"] = "07";
lMonthNames["Aug"] = "08";
lMonthNames["Sep"] = "09";
lMonthNames["Oct"] = "10";
lMonthNames["Nov"] = "11";
lMonthNames["Dec"] = "12";

ts.addParser({
  id: 'monthDay',
  is: function(s) {
    return false;
  },
  format: function(s) {
    if (s.length > 0) {
      var date = s.match(/^(\d{1,2})[ ](\w{3})[ ](\d{4})$/);
      var m = lMonthNames[date[2]];
      var d = String(date[1]);
      if (d.length == 1) {d = "0" + d;}
      return '' + m + d;
    } else {
      return '';
    }
  },
  type: 'numeric'
});

But the firebug console tells me date is null for
var m = lMonthNames[date[2]];
Can you pick why it doesn't have a value?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幸福丶如此 2024-10-23 02:48:48

因为您拥有的正则表达式与您提供的数据不匹配。

您的匹配类似于:26 Jul 2010,而不是类似于26 Jul

要么更改表中的数据,要么将正则表达式更改为:

      var date = s.match(/^(\d{1,2})[ ](\w{3})$/);

Because the regular expression you have doesn't match the data you are giving it.

Your's matches things like: 26 Jul 2010 and not things like 26 Jul.

Either change the data in the table, or change the regular expression to be:

      var date = s.match(/^(\d{1,2})[ ](\w{3})$/);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文