JS判断日期用正则表达式有问题,选择2月29日就有问题

var p1 = _g().parameterEl.getWidgetByName("fgs").getValue();

var p2 = _g().parameterEl.getWidgetByName("start_date").getValue();

var p3 = _g().parameterEl.getWidgetByName("end_date").getValue();

//alert(p2);

var url = '${servletURL}?viewlet=SJKSH/sjks_jira/SJKS-221/SJKS651_exxkqbb-fgs.cpt&fgs=' + p1 + '&start_date=' + p2+'&end_date='+p3+ '&format=excel&extype=simple';

//alert(url);

//alert(REPORT_URL);

/*var form = $("<form>"); 

form.attr('style', 'display:none'); 

form.attr('target', '');

form.attr('method', 'post');

form.attr('action', REPORT_URL)

$('body').append(form);

form.submit();*/

if(p2.length==0){

alert("请选择统计年月!");

return;

}

if(p3.length==0){

alert("请选择截止日期!");

return;

}

var p4=p2+"01";

if(p4>p3){

alert("统计年月不能大于截止日期!");

return;

}

var reg = /^(20|19){1}[0-9]{2}(((0){1}[1-9]{1})|((1){1}(0|1|2){1}))$/;

if (!reg.test(p2)) {

        alert("统计年月格式有误!");

        return;

    }

var re = /^([\d]{4}((((0[13578]|1[02])((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|11)((0[1-9])|([12][0-9])|30))|(02((0[1-9])|(1[0-9])|(2[0-8])))))|((((([02468][048])|([13579][26]))00)|([0-9]{2}(([02468][048])|([13579][26]))))(((0[13578]|1[02])((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|11)((0[1-9])|([12][0-9])|30))|(02((0[1-9])|(1[0-9])|(2[0-9]))))){4})$/;

if (!re.test(p3)) {

        alert("截止日期格式有误!");

        return;

    }

var exportName='E衔训考勤报表-分公司汇总表';

FR.Msg.alert("提示","正在导出,请稍等......"); 

$("#popup_container .fr-core-btn.ui-state-enabled.fr-core-btn-style-blue").hide();//隐藏确定 

$("#popup_close").hide();//隐藏X

let xhr = new XMLHttpRequest()

xhr.open('GET', encodeURI(url),true)

// 这部至关重要,命令xhr返回给你的时blob(二进制大对象)类型的数据

xhr.responseType = 'blob'

xhr.send()

xhr.onreadystatechange = function () {

  if (xhr.readyState === 4 && xhr.status === 200) {

    const aTag = document.createElement('a');

    aTag.href = URL.createObjectURL(this.response);

    aTag.download = exportName+'.xlsx';

    aTag.click();

    FR.Msg.alert("提示","导出完成!");

  }

  else {

  FR.Msg.alert("提示","导出失败!");

  }

}

FineReport 佑雪 发布于 2024-3-19 16:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-3-19 16:28

REGEXP(I10, "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)")

最佳回答
0
CD20160914Lv8专家互助
发布于2024-3-19 16:31

你的日期控件出来了不正确的2-29号?比如23年有2-29号?日期控件?

  • 佑雪 佑雪(提问者) 对,日期控件
    2024-03-19 16:47 
  • CD20160914 CD20160914 回复 佑雪(提问者) 截图我看一下,日期控件哪一年的2月出来29号不对了?今年有29号是正常的呀。去年不会有29号
    2024-03-19 16:48 
  • 2关注人数
  • 111浏览人数
  • 最后回答于:2024-3-19 16:31
    请选择关闭问题的原因
    确定 取消
    返回顶部