簡體   English   中英

RegEx在JavaScript中拆分格式字符串

[英]RegEx to split formatting string in JavaScript

我正在使用具有簡單asString()格式語法的JS日期庫,例如dd mmm yyyy產生01 Jan 1970

不幸的是,如果月份恰好包含一個出現在格式字符串中的字母,則可能會出錯,例如`Date('2014-09-01')。asString('dd mmm yyyy')= 2014年9月9日'

解決這個問題很簡單; 更改asString()方法以改為使用格式[[dd] [mmm] [yyyy]'。 但是,這來自其他方法使用的全局格式字符串。 唯一需要方括號的方法是asString方法。

因此,我的理想解決方案是在該方法中簡單地添加一個函數,以替換format字符串中的以下任何字符串:

formats=['yyyy','yy','mmmm','mmm','mm','m','dddd','ddd','dd','d','hh','min','ss'];

[]包圍

dd/mm/yyyy => [dd]/[mm]/[yyyy]

不幸的是,正則表達式證明很復雜-簡單地遍歷每個項目會導致[[d][d]]/[[m][m]]/[[yy][yy]]

因此,我需要幫助編寫此RegEx。 如果無法完成,請這樣說-我對使用新庫作為解決方案不感興趣,但會考慮在當前的asString方法中以不同方式解決問題的解決方案(即無重大更改)

應該這樣做:

var regex = /(min|y+|m+|d+|h+|s+)/g,
    newString = format.replace(regex,'[$1]');

經過格式"dd/mm/yyyy" ,結果為"[dd]/[mm]/[yyyy]"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM