2015-01-10 56 views
1

Chrome中的Date.parse實現具有非常意外的行爲。Chrome中的Date.parse問題

例如,Date.parse('foo 2014')理想情況下應返回NaN,因爲它不是正確的日期格式。但是在Chrome中,此返回值爲1388514600000,相當於「Wed Jan 01 2014 00:00:00 GMT + 0530(印度標準時間)」的日期。

只要字符串以某種年份結尾,就會返回適當的日期值。這不會讓我們正確驗證日期。

根據ECMAScript,這個行爲是依賴於實現的,並且chrome做了一個非常寬鬆的驗證,還有一些如何轉換爲日期。

無論如何,在Chrome中無需使用任何庫或使用重邏輯和匹配模式來正確驗證日期?

+0

一種可能的方式可能會使用Date.UTC 1.風險價值=您的日期 2.斯普利特的格式它任何分隔你有(摘錄月,日,年) 3. VAR日期=新的日期( Date.UTC('2014','foo'.......) console.log(日期) - 打印無效日期 但是,您必須驗證月份和日期範圍,這應該很容易 – user1428716

+0

@ user1428716 ,問題是格式可以是任何東西,數據來自Excel文件,如果用戶輸入它作爲字符串,我們需要解析它到一個適當的日期... –

回答

0

您可以在解析之前使用正則表達式測試日期字符串。

+0

問題是,日期的格式可以是任何東西...從Excel接收數據,如果用戶輸入日期爲字符串,我們需要解析它到適當的日期... –

+0

@Anand,你可以使用幾個正則表達式爲不同的格式。 –