文字列で渡ってきた日付情報をフォーマットする(再)

以前のエントリ:文字列で渡ってきた日付情報をフォーマットする


以前書いたjavascript正規表現の例ですが、別のやり方がわかったので追記します。

var s = '2008年3月2日 22時36分10秒';
var x = s.replace(/(\d{4})年(\d{1,2})月(\d{1,2})日\s+(\d{1,2})時(\d{1,2})分(\d{1,2})秒/, '$1/$2/$3 $4:$5:$6');
console.log(x); // 2008/3/2 22:36:10

これなら1発♪
ポイントは、マッチした箇所を$1や$2等で抜き出して使っているところ。抜き出したい箇所はカッコで囲むといい。例えば2008を抜き出したければ「(\d{4})年」とする。これは「2008年」にマッチするわけですが、カッコは「年」を除いた箇所にかかっているので、「$1」は「2008」となります。