2017-07-14 46 views
0

我嘗試了多種不同的方式,但我迷路了。我似乎無法刪除輸出的「無效日期」。由於來自JSON的空白條目而發生無效日期。唉,我已經給出了一個可行的例子,而不使用產生相同結果的AJAX。如何使用正則表達式從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); 

一些數據來通過空,一些配備了一個實際日期。這就是JSON數據的方式。我想要答案直接解決如何用正則表達式替換字符串,而不是使用任何其他方法。

+0

也許這類型的問題不適合正則表達式? –

+0

[在JavaScript中檢測「無效日期」日期實例]可能的重複(https://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript) –

+0

@DaveVandenEynde這會建議我只想知道是否有什麼是無效的日期。這與我無關。我只是想從DOM中刪除結果,因爲它會弄糊塗我的HTML。 –

回答

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() 
 
}

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 */} 
} 
相關問題