Expresión regular para dividir la cadena pero capturar el sperator

He escrito "dd month yyyy" y quiero split para convertir a array como ["dd", "", "month", "", "yyyy"].

Lo que tengo hasta ahora y este método funciona. Pero estoy buscando la expresión Reg que hacer si alguien puede ayudar?

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; } 

Sencillo:

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

Esto se dividirá en un límite de palabras.

Supongo que "mm dd aaaa" en realidad serán numbers, pero esto también funcionará para las strings.

 var date ="01 02 1292"; var dateArr = date.match(/[^\s]+|\s/g); document.write(JSON.stringify(dateArr)); 
 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")));