gpt4 book ai didi

javascript - 以欧洲格式 (dd-MM-yyyy) 对日期进行排序的正则表达式

转载 作者:行者123 更新时间:2023-11-30 17:59:41 25 4
gpt4 key购买 nike

我正在使用以下脚本对表格进行排序和过滤:

http://javascripttoolbox.com/lib/table/
源代码:
http://javascripttoolbox.com/libsource.php/table/source/table.js

我的日期格式为:dd-MM-yyyy。

该脚本具有三个用于排序日期的内置 RegEx 函数:

sort.date.formats = [
// YY[YY]-MM-DD
{
re: /(\d{2,4})-(\d{1,2})-(\d{1,2})/,
f: function (x) {
return (new Date(sort.date.fixYear(x[1]), +x[2], +x[3])).getTime();
}
}
// MM/DD/YY[YY] or MM-DD-YY[YY]
,
{
re: /(\d{1,2})[\/-](\d{1,2})[\/-](\d{2,4})/,
f: function (x) {
return (new Date(sort.date.fixYear(x[3]), +x[1], +x[2])).getTime();
}
}
// Any catch-all format that new Date() can handle. This is not reliable except for long formats, for example: 31 Jan 2000 01:23:45 GMT
,
{
re: /(.*\d{4}.*\d+:\d+\d+.*)/,
f: function (x) {
var d = new Date(x[1]);
if (d) {
return d.getTime();
}
}
}];

所以问题是,格式为 dd-MM-yyyy 的日期的正则表达式是什么样的?

我在这里创建了一个 jsFiddle:

http://jsfiddle.net/LgQsu/

如果您的解决方案适用于截止日期列,请告诉我!

最佳答案

您的 fiddle 有一个对 table.js 的额外引用,它正在执行而不是您的 javascript 代码。此外,要触发代码,需要将其插入 head-tag(“框架和扩展”下的设置)。

您的截止日期列被指定为排序为“默认”,即字母数字。

<th class="table-sortable:date ..." ...>

修复后,匹配了错误的日期格式。日期匹配为“YY-MM-DD”(2 位数年份),而不是“DD-MM-YYYY”,即使日期以 4 位数年份结尾。那是因为您的正则表达式未使用 ^$ 锚定。

sort.date.formats = [
// YY[YY]-MM-DD
{
re: /^\s*(\d{2,4})-(\d{1,2})-(\d{1,2})\s*$/,
f: function (x) {
return (new Date(sort.date.fixYear(x[1]),+x[2],+x[3])).getTime();
}
},
// DD/MM/YY[YY] or DD-MM-YY[YY]
{
re: /^\s*(\d{1,2})[\/-](\d{1,2})[\/-](\d{2,4})\s*$/,
f: function (x) {
return (new Date(sort.date.fixYear(x[3]),+x[2],+x[1])).getTime();
}
},
// Any catch-all format that new Date() can handle. This is not reliable except for long formats, for example: 31 Jan 2000 01:23:45 GMT
{
re: /(.*\d{4}.*\d+:\d+\d+.*)/,
f: function (x) {
var d=new Date(x[1]);
if (d) {
return d.getTime();
}
}
}
];

这是一个更新的 fiddle ,带有工作日期排序:

http://jsfiddle.net/fa2Qm/

关于javascript - 以欧洲格式 (dd-MM-yyyy) 对日期进行排序的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com