2011-11-16 64 views
0

我有日期如下內容(注末尾的「T」)正則表達式之日起代替

2011-11-07T15:24:28 
2011-11-07T 

用正則表達式,我需要只提取日期部分使兩者看起來像這樣

20111107 
20111107 

。網

有一個web服務返回日期如2011-11-07T15:24:28,但在某些情況下,它返回日期沒有時間,但仍與尾隨T.這導致.net的cdate函數救市。

+0

哪種語言?你可能不需要一個正則表達式 – JMax

+1

什麼是語言?也許有一個日期對象,可以處理這個。 – stema

+0

這是一個ISO 8601日期時間。 .NET能夠解析這個。 – dereli

回答

1

如果你想的JavaScript:

http://jsfiddle.net/3edLJ/1/

var message = "One is 2011-11-07T15:24:28 and the other is 2011-11-07T (it had a trailing t)" 

var regex = /(\d{4})-(\d\d)-(\d\d)T(\d\d:\d\d:\d\d)?/g; 

function extract(s) { 
    return s.replace(regex, "$1$2$3"); 
} 

alert(extract(message)); 

此正則表達式正確滴了一段時間。

1

這是如此微不足道?

/(\d{4})-(\d\d)-(\d\d)/ 

使用反向引用$ 1 $ 2 $ 3作爲結果。

還是有什麼你不告訴我們?

1

這是我的建議。正則表達式是:

(\d{4})-(\d{2})-(\d{2})T 

更換:

$1$2$3