簡體   English   中英

驗證ISOString格式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM