[英]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.