【问题标题】:Abbreviated time zone regex缩写时区正则表达式
【发布时间】:2016-01-06 06:16:37
【问题描述】:

我需要正则表达式来获取日期对象中的缩写时区

示例:“2015 年 10 月 8 日星期四 20:03:40 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

请推荐一些更好的正则表达式

【问题讨论】:

  • 您真的需要正则表达式,还是正在寻找一种方法来获取用户时区的标准缩写?时区名称中的大写字母通常与时区的缩写不匹配。

标签: javascript regex


【解决方案1】:

试试这个

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

我假设这里总是有 3 个单词,它们以大写字母开头。

【讨论】:

  • 保留首字母大写并删除其余字母实际上是将长格式转换为短格式的正确做法,这也不是一个好的假设。但这对于(有限的)目的可能已经足够了。
  • [例如,在英国,“GMT 标准时间”由此转换为 GST,即海湾标准时间。但这是一个关于正则表达式的问题,而不是时区,所以我本着这种精神回答了它]
  • 同意,您也可以从同一链接的第一页看到。
  • 这个问题确实是关于正则表达式,但它可能是should not have been
猜你喜欢
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
相关资源
最近更新 更多