2015-04-30 118 views
6

我有字符串說「dd月yyyy」,我想拆分轉換爲數組像「[」dd「,」「,」月「,」「,」yyyy「]。正則表達式來拆分字符串,但捕獲的Spector

我到目前爲止,這種方法的工作。但是,如果有人能幫忙,我正在尋找Reg表達方式嗎?

function toArray(format) { 
var vDateStr = ''; 
var vComponantStr = ''; 
var vCurrChar = ''; 
var vSeparators = new RegExp('[\/\\ -.,\'":]'); 
var vDateFormatArray = new Array(); 

for (var i=0; i < pFormatStr.length; i++) 
{ 
    vCurrChar = pFormatStr.charAt(i); 
    if ((vCurrChar.match(vSeparators)) || (i + 1 == pFormatStr.length)) // separator or end of string 
    { 
     if ((i + 1 == pFormatStr.length) && (!(vCurrChar.match(vSeparators)))) // at end of string add any non-separator chars to the current component 
     { 
      vComponantStr += vCurrChar; 
     } 
     vDateFormatArray.push(vComponantStr); 
     if (vCurrChar.match(vSeparators)) vDateFormatArray.push(vCurrChar); 
     vComponantStr = ''; 
    } 
    else 
    { 
     vComponantStr += vCurrChar; 
    } 

} 
return vDateFormatArray; 
} 
+0

你要保持空間'」「'之間的數字? –

+0

KJ Price,是的,我想要reg'([\/\\ - 。,\'「:])中的分隔符也是最終數組中的一個元素,在這種情況下''」'空格 – user3130446

回答

5

簡單:

> "10 Jan 2015".split(/\b/g) 
< ["10", " ", "Jan", " ", "2015"] 

這將分裂一個字邊界上。

+0

這是完美的,它按照我的預期工作,非常感謝 - Reddy – user3130446

+0

非常歡迎您;) –

3

我認爲「mm dd yyyy」實際上是數字,但這也適用於字符串。

var date ="01 02 1292"; 
 

 
var dateArr = date.match(/[^\s]+|\s/g); 
 

 
document.write(JSON.stringify(dateArr));

+0

這隻適用於分隔符是空格的情況''「'但是如果你閱讀我的問題,我希望在reg表達式中使用不同的分隔符,因爲格式可以有任何分隔符(參見我的reg表達式) – user3130446

+0

啊感覺 –

1

function toArray(format) { 
 
    var r = new RegExp('([0-9]{2})()([0-9]{2})()([0-9]{4})'); 
 
    return format.match(r).slice(1); 
 
} 
 

 
document.write(JSON.stringify(toArray("30 12 1980")));

相關問題