2016-04-06 91 views
32

我的應用程序有一個HTML表單,其中一些輸入由後端填充,其他輸入由用戶輸入(在time輸入中)。當用戶更改一個值時,一個onChange函數會遍歷每個輸入。如何測試一個變量是否是Moment.js對象?

從後端填充的輸入被轉換爲moment對象,用戶輸入的日期僅僅是字符串。這意味着onChange函數遇到一些moment對象和一些字符串。我需要知道哪些輸入是moment對象,哪些不是。

什麼是測試變量是否爲moment對象的推薦方法?

我注意到moment對象有一個_isAMomentObject屬性,但我想知道是否有另一種方法來測試變量是否爲moment對象。

我試過的另一個選擇是在變量上調用moment。這會將string變量轉換爲moment對象,並且似乎不會影響現有的moment對象。

+4

由於[答案在官方文檔中](http://momentjs.com/docs/#/query/is-a-moment/),我正在投票結束這個問題作爲題外話題。 – Mathletics

+0

儘管有幾次搜索,我還沒有看到@Mathletics。正如賈裏德史密斯指出的,它埋葬在文檔中。 –

+1

@Mathletics我實際上是通過瀏覽源代碼找到它的,然後能夠控制鏈接的文檔。谷歌沒有任何幫助(我想這是首先引發了這個問題的原因),這可以說是一種更爲搜索引擎友好的資源(因此可以說是值得爲後人留下的)。 –

回答

38

時刻有isMoment method爲這樣一個目的。除非您知道要尋找什麼,否則在文檔中找到它並不是特別容易。

它首先檢查instanceof,然後失敗(例如在某些子類或跨領域情況下),它將測試_isAMomentObject屬性。

17

您可以檢查它是否是一個instanceof時刻:

moment() instanceof moment; // true 
+4

僅當實例和時刻本身位於同一窗口中時。 – JAAulde

+0

好點,我假設最簡單的情況。 –

相關問題