我有一些像這樣的字符串:2012-02-05T07:42:47.000Z
與其他字符串混合在一起。這是總是這種格式。 (但數字是不一樣的,當然...時間是不同的) (而不是Sun, 05 Feb 2012 07:42:47 GMT
)如何確定字符串是否爲日期格式?
我想知道一個字符串是否匹配該格式。我如何確定?它與冒號,點和東西非常複雜。
我有一些像這樣的字符串:2012-02-05T07:42:47.000Z
與其他字符串混合在一起。這是總是這種格式。 (但數字是不一樣的,當然...時間是不同的) (而不是Sun, 05 Feb 2012 07:42:47 GMT
)如何確定字符串是否爲日期格式?
我想知道一個字符串是否匹配該格式。我如何確定?它與冒號,點和東西非常複雜。
正則表達式[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}Z
你可以在這裏測試它:http://www.regexplanet.com/simple/index.html – 2012-02-08 14:00:58
藥粥這!isNaN(+new Date(s))
?
這是什麼?這會工作嗎? – TIMEX 2012-02-08 14:04:01
只是「內置日期作爲日期字符串接受此字符串」的濃縮黑魔法。 – 2012-02-08 22:26:26
嘗試匹配與以下正則表達式:
var pattern = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;
var d = "2012-02-05T07:42:47.000Z";
if(d.match(pattern) !== null){
//success
} else {
//failed
}
您可以使用Date.parse(your_string)和檢查結果。這將檢查任何允許的日期格式,不像正則表達式。 http://www.w3schools.com/jsref/jsref_parse.asp
剛剛意識到您的字符串總是在給定的格式,還不像正則表達式函數將檢查日/月/年是正確的等等。所以,也許攜帶2個檢查:1,檢查字符串格式,第2個檢查號碼是對的。
用#符號替換所有數字,以便「2012-02-05T07:42:47.000Z」看起來像「#### - ## - ## T ##:##:##。## #Z「,那麼你可以直接進行字符串搜索。
我用這種技術在大塊文檔文本中查找社會安全號碼,我將所有數字轉換爲#號我只需要查找字符串### - ## - ####
對於它的價值,你可以使用moment.js來做到這一點。
var check1 = "2012-02-05T07:42:47.000Z";
alert(moment(check1));
//Sat Feb 04 2012 23:42:47 GMT-0800
var check2 = "201-02-05T07:42:47.000Z";
alert(moment(check2));
//Invalid date
是不是有辦法把它直接解析成Java沒有一個正則表達式? 用正則表達式你知道如果它是一個日期,但如果你還需要我應該檢查一些日期解析器函數的值。 – 2012-02-08 13:53:31