有人可以爲我提供以下正則表達式嗎? (使用JavaScript)解析日期/時間字符串所需的正則表達式
源字符串:Jan 2 2010 6:00PM
我想要得到的字符串,只顯示時間,如下圖所示。 (上面的例子中使用)
結果字符串:6:00 PM
有人可以爲我提供以下正則表達式嗎? (使用JavaScript)解析日期/時間字符串所需的正則表達式
源字符串:Jan 2 2010 6:00PM
我想要得到的字符串,只顯示時間,如下圖所示。 (上面的例子中使用)
結果字符串:6:00 PM
替換(\d{1,2}:\d{1,2})([AP]M)
與\1 \2
更新:使用\d{2}
代替\d{1,2}
如果源串是保證在HH:MM
格式。
+1,但是':\ d {1,2}'應該是':\ d {2}',因爲秒總是使用2位數字 – 2010-01-11 16:38:59
雅,我在OP的例子中只是寬鬆的小時部分是單個數字。 – Amarghosh 2010-01-11 16:42:44
魯本斯:我看到沒有秒,但只有幾分鐘! :P – 2010-01-11 16:47:09
您可以使用格式爲MMM dd yyyy HH:mm
的SimpleDateFormat
。然後你可以獲得時間部分。
雖然我沒有看過,但我相信你能在Regex Library網站上找到適合你的東西。不過,我碰巧同意SilentGhost,因爲分割字符串可能更容易。只要確保所有日期時間都是相同的格式。
實施SilentGhost在正則表達式評論:/([^ ]+)([^ ]{2})$/
這將匹配最後一個空格分隔的「字」,在第1組和第2組的翻譯字符串操作的最後兩個字符的第一位,而不是應直截了當。
你也可以更換(..)
與[AP]M
或類似的,如果需要的話,如果你構建的正則表達式,以防止類似blah blah haha-I-gave-garbage-inputPM
可能從驗證的一點點好處,但也有很多方法無論如何處理的垃圾。
如果你需要將其轉換成一個Date對象,如果你在一個網絡瀏覽器使用JavaScript,您可能希望這個代替:
new Date('Jan 2 2010 6:00PM'.replace(/(?=[AP]M)/i, ' '));
// Sat Jan 02 2010 18:00:00 GMT-0600 (Central Standard Time)
new Date('Jan 2 2010 6:00PM'.replace(/(?=[AP]M)/i, ' ')).toUTCString();
// Sun, 03 Jan 2010 00:00:00 GMT
Mozilla將在Javascript Date object參考文檔。
平臺的選擇?此外,SilentGhost有一個非常好的點 – 2010-01-11 16:33:46
爲什麼你需要正則表達式?你不能在最後的空間分割字符串嗎? – SilentGhost 2010-01-11 16:34:01
我同意拆分會很好。爲什麼我沒有想到這個? (duh) 但是,在那種情況下,我將如何拆分PM? – Kenny 2010-01-11 16:39:53