[英]Validate ISOString format?
如何驗證字段是否為ISOString格式?
當我使用const create = '2018-08-02T02:07:49.214Z'
等有效日期時,它可以工作,但是當我使用const create = 'b';
時,它將破壞腳本const create = 'b';
例:
//const create = '2018-08-02T02:07:49.214Z'; const create = 'b'; const dateParsed = new Date(Date.parse(create)) if(dateParsed.toISOString() === create){ console.log(dateParsed.getTime()) } else { console.log('invalid date') }
我收到一個錯誤RangeError: Invalid time value
但是期望控制台日志中的invalid date
。
為了達到預期效果,請添加以下條件
!isNaN(dateParsed) && dateParsed.toISOString() === create
問題:
控制台錯誤有效,因為它拋出帶有無效日期的toISOString()的錯誤
工作代碼供參考
const create = 'b'; const dateParsed = new Date(Date.parse(create)) if(!isNaN(dateParsed) && dateParsed.toISOString() === create){ console.log(dateParsed.getTime()) } else { console.log('invalid date') }
由於Date.parse('b')
返回NaN
,所以new Date(Date.parse(create))
將返回無效的Date。 我將向您指出這個問題: 在JavaScript中檢測“無效日期” Date實例 ,它提供了兩種方法來檢查日期是否有效。
至少在此示例情況下,似乎並非嚴格要求ISO格式,但是您應該能夠構造一個正則表達式以至少與結構匹配(對於真正有效的ISO日期字符串可能還有其他要求,我是不確定從我的頭頂掉)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.