需要使用正则表达式从时区字符串中删除偏移量



我正在尝试用z替换时间戳中的时区。 例如

2019-08-14T21:21-0100

需要替换为2019-08-14T21:21Z.我现在使用的正则表达式是.replace(/+[^/+]+$/,"Z")但它仅适用于负偏移量,如 -0100,但不适用于 +0100

就像

let zone = "2019-08-14T21:21-0100";
zone = zone.replace(/[-+]d+$/, "Z");
console.log(zone);

您可以使用[+-]d{4}$来选择它并将其替换为其他内容。

const result = '2019-08-14T21:21-0100'.replace(/[+-]d{4}$/, 'Z');
console.log(result);

试试这个:

console.log(
[
'2021-12-31T23:59:59+02:00',
'2021-12-31T21:59:59+0200', // mind no semicolon
'2021-12-31T20:59:59-02:00',
'2021-12-31T19:59:59-0200',
'2021-12-31T18:59:59-02',
'2021-12-31T17:59:59+02',
'2021-12-31T16:59:59Z',
'2021-12-31',
].map(
i => i.replace(
/(T.*)(Z|[+-](d{2}:?d{2}$)|([+-]d{2}$))/, 
'$1ZULU' // here mind the match $1
)
)
)

最新更新