2012-03-16 38 views
1

如何檢查日期是否採用給定格式?它必須是功能這樣檢查日期是否採用Javascript中的給定格式

function isInGivenFormat(date,format) 
{ 
//some checking 
} 

例如,isInGivenFormat("12:45:02","hh:mm:ss")必須返回true和isInGivenFormat("12:45:02 PM","hh:mm:ss")必須返回false。
如何使用Javascript/Jquery實現此功能?

+4

哦,我的上帝,它的查克·諾里斯問#2問題:d Norris從來不問#2的問題,#2是問他的問題:d – 2012-03-16 13:41:08

+2

:DDDDD只有喬恩斯基特能回答關於Chuck Norris的問題... – shift66 2012-03-16 13:42:28

回答

2

您需要使用正則表達式。此鏈接可以幫助:

regex in javascript

+0

如何在格式可以成爲一切時使用正則表達式? – 2012-03-16 13:42:32

+1

爲要使用的每種格式創建正則表達式,或者創建一個函數來分析您的格式以動態創建常規表達式。 – Th0rndike 2012-03-16 13:43:21

+0

或者只是這樣做:var formats = {};格式['hh:mm:ss'] = //正則表達式 – 2012-03-16 13:50:06

4
var dateCheck = /^\d{2}:\d{2}:\d{2}$/.test(date) 
if(!dateCheck){ 
//not a match 
} 
+0

+1但是,嚴重的是,爲什麼任何人都想使用一個簡單的表達式,當他們可以讓用戶加載一個庫呢? : - /我認爲它會更好,但是作爲'/^\ d {2}:\ d {2}:\ d {2} $ /。test(dateString)', 。 – RobG 2012-03-16 14:19:07

+0

是的,這是「hh:mm:ss」格式的不錯解決方案,但問題是關於爲所有格式版本使用通用函數。 在這種情況下,date.js是更智能的解決方案。 – 2012-03-16 14:27:48

+1

我很好奇。這款應用需要多少種日期格式? – 2012-07-06 15:35:48

4

我促請你看看Date.js庫。它處理這種情況(以及更多)。

特別是parseExact()方法解決了這個問題。

Date.parseExact (String dateString, String formatStringOrArray) : Date 

使用指定的格式(字符串)或格式(數組)將指定的字符串值轉換爲等效的JavaScript Date等效值。字符串值的格式必須完全匹配提供的格式之一。

例子

Date.parseExact("12:45:02 PM","hh:mm:ss"); // returns null 
Date.parseExact("10/15/2004", "M/d/yyyy"); // The Date of 15-Oct-2 
相關問題