2015-10-08 90 views
0

我需要的正則表達式採取縮寫時區的日期對象縮寫時區的正則表達式

例:「星期四2015年10月8日20點03分四十秒GMT + 0530(印度標準時間)」

預計:」週四2015年10月8日20時03分40秒GMT + 0530(IST)」

var str = new Date().toString().match(/\(([A-Za-z\s].*)\)/)[1] 
var newmsg = str.replace(/[a-z\s]/g, ''); 
console.log(newmsg); 

Demo

請建議一些更好的雷傑X

+2

你真的需要一個正則表達式,或者你正在尋找一種方法來獲得用戶時區的標準縮寫嗎?時區名稱中的大寫字母通常與時區縮寫不匹配。 –

回答

1

試試這個

console.log(new Date().toString().replace(/\(([A-Z]).*?\s([A-Z]).*?\s([A-Z]).*?\)/,'($1$2$3)'));

我假設在這裏,總有3個字,他們開始用大寫字母。

+0

這不是一個好的假設:http://www.timeanddate.com/time/zones/ –

+0

這也不是一個好的假設,離開最初的大寫字母,並刪除其餘的,實際上是一個正確的事情來做轉換長形式簡化形式。但是對於(有限的)目的來說可能是足夠好的。 –

+0

[例如,在英國,「GMT標準時間」由此轉換爲GST,這意味着海灣標準時間。但是這是一個關於正則表達式的問題,而不是時區,所以我以這種精神回答了這個問題] –