Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日期范围的正则表达式_Javascript_Jquery_Html_Date_Date Format - Fatal编程技术网

Javascript 日期范围的正则表达式

Javascript 日期范围的正则表达式,javascript,jquery,html,date,date-format,Javascript,Jquery,Html,Date,Date Format,有没有一种方法可以从日期字符串中获取日期,比如从“2013年4月1日”到“2016年4月1日”,您能为编写正则表达式或JavaScript提供一些建议吗 这对于您询问的输入非常具体,但它应该有效: function parseInput(input) { var expr = /from \"(.*)\" to \"(.*)\"/g; var matches = expr.exec(input); if (input !== null) { var sta

有没有一种方法可以从日期字符串中获取日期,比如从“2013年4月1日”到“2016年4月1日”,您能为编写正则表达式或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(中央夏令时)}

可以使用此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;
    }
var dateFrom=“01-Apr-2013”;
var dateLimit=“2016年4月1日”;
var dateCheck=“2014年4月4日”//假设这是document.getElementById(“userinput”).innerHTML的结果
var d1=格式日期(dateFrom).split(“-”);
var d2=格式化日期(dateLimit).split(“-”);
var c=格式化日期(dateCheck).split(“-”);
var from=新日期(d1[2],parseInt(d1[1])-1,d1[0]);
var to=新日期(d2[2],parseInt(d2[1])-1,d2[0]);
var检查=新日期(c[2],parseInt(c[1])-1,c[0]);
(检查>从和检查<到)?console.log(“用户输入在日期范围内”):console.log(“您的日期“+dateCheck+”不在“+dateFrom+”和“+dateLimit+”之间”);
函数格式日期(日期){
var monthNames=[
“一月”、“二月”、“三月”,
“四月”、“五月”、“六月”、“七月”,
“八月”、“九月”、“十月”,
“11月”、“12月”
];
变量月份=日期。子项(3,3)
var day=日期。substr(0,2);
var monthIndex=日期指数(月)+1;
风险值年份=日期。子项(7,4);
返回日+'-'+月印度群岛+'-'+年;
}

我需要rgex到jquery数据表(FYI)中的serach日期范围,我知道其他选项,但我只需要通过rgexI需要rgex到jquery数据表(FYI)中的serach日期范围,我知道其他选项,但我只需要通过RGEXM我的目标是在jquery数据表中执行ag grid数据表(即)过滤器