2011-02-01 58 views
0

我想在RegEx中捕捉年限的條件。基本上,如果他們只實施一個兩位數的年份,我想把它做成四位數年份。所以,如果他們提出:你怎麼能用正則表達式來捕獲這個?

1/2/08 

我想讓它:

1/2/2008 

任何想法?

回答

3

一個[非常討厭]方式使用正則表達式:

"1/2/08".sub! /\/(\d{2})$/, '/20\1' 

那豈不是更好,只是解析字符串轉換成日期對象有關係嗎?那麼你可以把它當作一個正確的日期! :)

+0

我以爲你可以。但如果你Date.parse(「1/2/09」),它是完全不同於Date.parse(「1/2/2009」) – Trip 2011-02-01 17:00:36

1

您可以在'/'上分割,如果最後一個組件的長度爲2,則預先設定20,然後重新組合日期。

+0

啊謝謝!這樣可行! – Trip 2011-02-01 16:57:19

0

你可以使用

(.*/)(..)$ 

分割字符串起來,然後用替代的東西像

$120$2 

把串到一起(與http://www.regexplanet.com/simple/測試)。

你可能需要考慮你想要在20世紀的日期發生什麼 - 這種方法將21/01/98識別爲21/01/2098,這可能不是你想要的...可能是更好地解析字符串,而不是隻是盲目地正則表達它!