日期范围内的正则表达式
答
这是非常具体的你问关于输入,但它应该工作:
function parseInput(input) {
var expr = /from \"(.*)\" to \"(.*)\"/g;
var matches = expr.exec(input);
if (input !== null) {
var start = new Date(matches[1]);
var end = new Date(matches[2]);
if(start === null || end === null) {
return null;
}
return {
start: start,
end: end
}
}
return null;
}
现在你应该得到这样的:
parseInput('from "01-Apr-2013" to "01-Apr-2016"');
对象{开始:星期一2013年4月1日00 :00:00 GMT-0500(中央夏令时间),结束:周五2016年4月1日00:00:00 GMT-0500(中央夏令时间)}
答
代替正则表达式,您可以使用此javascript代码。
var dateFrom = "01-Apr-2013";
var dateLimit = "01-Apr-2016";
var dateCheck = "04-Apr-2014"; //Suppose that this is the result of document.getElementById("userinput").innerHTML
var d1 = formatDate(dateFrom).split("-");
var d2 = formatDate(dateLimit).split("-");
var c = formatDate(dateCheck).split("-");
var from = new Date(d1[2], parseInt(d1[1]) - 1, d1[0]);
var to = new Date(d2[2], parseInt(d2[1]) - 1, d2[0]);
var check = new Date(c[2], parseInt(c[1]) - 1, c[0]);
(check > from && check < to) ? console.log("The user input is within the date range.") : console.log("Your date " + dateCheck + " is not between " + dateFrom + " and " + dateLimit + ".");
function formatDate(date) {
var monthNames = [
"Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul",
"Aug", "Sep", "Oct",
"Nov", "Dec"
];
var month = date.substr(3, 3)
var day = date.substr(0, 2);
var monthIndex = date.indexOf(month) + 1;
var year = date.substr(7, 4);
return day + '-' + monthIndex + '-' + year;
}
+0
我需要rgex来在jquery数据表中选择日期范围( FYI https://datatables.net/examples/api/regex.html),我知道其他选项,但我只需要通过rgex –
我需要rgex到检索算法的日期范围在jQuery的数据表(FYI https://datatables.net/examples/api/regex.html),我知道其他的选择,但我需要只通过rgex –
我的目标是在jQuery数据表中做Ag-grid数据表(即https://www.ag-grid.com/javascript-grid-filtering/#gsc.tab=0)过滤器 –