我試圖確定字符串是數字還是日期。確定字符串是日期還是數字
這裏是我的代碼:
this._getFieldFormat = (value) => {
// check if is date
let d = new Date(value);
if (!isNaN(d.getTime())) {
return 'date';
}
// check if is boolean
// isNaN(false) = false, false is a number (0), true is a number (1)
if(typeof value === 'boolean'){
return 'boolean';
}
// check if a string is a number
if(!isNaN(value)){
return 'number';
}
return typeof value;
};
它的工作原理像一個日期:2016-04-19T23:09:10.208092Z
。 問題是1
看起來是一個有效的日期(Wed Dec 31 1969 16:00:00 GMT-0800 (PST)
)和isNaN(new Date())
是返回false
(日期是一個數字)。
任何想法如何擺脫這個循環?
測試任何日期格式或特定的? –
任何會更好,但如果我必須選擇這是時間格式:'2016-04-19T23:09:10.208092Z' – teone
是否有一個特別的原因爲什麼需要作出這種區別?另外,像2016年的「日期」 - 這些有效日期是什麼? – mc10