我看到了很多關于日期問題的 Safari 和 IE 日期問題的答案,在replace(/-/g, "/")這些情況下使用了像魅力一樣的作品,2022-11-30 17:00 UTC 0200但是當我有像這個這樣的其他時區時遇到了一個問題,2022-11-28 21:56 UTC-0500它會再次為任何瀏覽器創建一個無效的日期.
所以我正在尋找一種解決方案,它可以取代“-”而不是全域,但最終只能在第一個單詞中。
謝謝
uj5u.com熱心網友回復:
那個怎么樣?
const date = `2022-11-30 17:00 UTC-0200`
const regex = /(\d )-(\d )-(\d )/g
const result = date.replace(regex, '$1/$2/$3')
console.log(result)
uj5u.com熱心網友回復:
您可以選擇UTC在之前捕獲-,如果捕獲,則放回整個匹配項,否則,替換-為/:
const text = "2022-11-28 21:56 UTC-0500";
console.log( text.replace(/(UTC)?-/g, (x,y) => y ? x : "/") )
這里,
(UTC)?-- 匹配并捕獲UTC第 1 組中的一個可選項,然后匹配一個-字符(x,y) => y ? x : "/"- 如果(第 1 組)匹配,則y放回x(整場比賽),否則,放回./-
后視版本:
const text = "2022-11-28 21:56 UTC-0500";
console.log( text.replace(/(?<!UTC)-/g, "/") )
// => 2022/11/28 21:56 UTC-0500
(?<!UTC)-匹配-沒有緊跟在前面的a UTC。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/528894.html
