如何使用正则表达式从AJAX结果中删除“无效日期”?

时间:2017-07-14 05:24:23

标签: javascript jquery ajax

我尝试了多种不同的方法,但我迷路了。我似乎无法删除输出的“无效日期”。由于JSON中的空白条目而发生无效日期。唉,我给出了一个可行的例子,没有使用产生相同结果的AJAX。

$(document).ready(function() {

  var datePassed = "20170715";
  var inval = "";
  var newDateString = datePassed.substr(4,2)  + "-" + datePassed.substr(6,2) + "-" + datePassed.substr(0, 4);
  var finalDate = new Date(newDateString.replace(/(?:Invalid Date)/g, " "));
  var fakeDate = new Date(inval.replace(/(?:Invalid Date)/g, " "));

  console.log(finalDate);
  console.log(fakeDate);

});

无效日期会附加到我的HTML上,但这并不酷。

编辑:有些人似乎认为我想要做的就是验证我是否收到无效的约会对象。我希望他们来;这只是我安排事情的一部分。我希望从我的HTML中删除“无效日期”,因为它会附加到我的类中,如下所示:

this.elem.find(".deadline").append(finalDate);

有些数据来自null,有些数据带有实际日期。这就是JSON数据的方式。我想答案直接解决如何用正则表达式替换字符串而不使用任何其他方法。

2 个答案:

答案 0 :(得分:0)

使用简单的if条件进行验证。检查emptynull



var datePassed = "20170715";
var inval = "";
var newDateString = datePassed.substr(4, 2) + "-" + datePassed.substr(6, 2) + "-" + datePassed.substr(0, 4);

console.log(valid(newDateString)); //true
console.log(valid(inval)); //false

function valid(a){
return !!a.trim()
}




答案 1 :(得分:0)

要检查日期是否有效,您可以执行此操作

var dateString = "12-12-2012";
var date = new Date(dateString);

if ( Object.prototype.toString.call(date) === "[object Date]" ) {
  if ( isNaN(date.getTime())) {/* date is not valid */}
  else {/* date is valid */}
}