日期范围内的正则表达式

问题描述:

有没有一种方法可以从日期字符串中获取日期,如从“01-Apr-2013”​​到“01-Apr-2016”您可以给任何编写正则表达式或JavaScript的建议吗?日期范围内的正则表达式

这是非常具体的你问关于输入,但它应该工作:

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(中央夏令时间)}

+0

我需要rgex到检索算法的日期范围在jQuery的数据表(FYI https://datatables.net/examples/api/regex.html),我知道其他的选择,但我需要只通过rgex –

+0

我的目标是在jQuery数据表中做Ag-grid数据表(即https://www.ag-grid.com/javascript-grid-filtering/#gsc.tab=0)过滤器 –

代替正则表达式,您可以使用此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 –