用于拆分字符串但捕获分隔符的正则表达式
Regular expression to split the string but capture sperator
我有字符串说 "dd month yyyy",我想拆分为数组,如 ["dd"、" "、"month"、" "、"yyyy"]。
我目前所拥有的和这个方法有效。但我正在寻找 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;
}
我假设 "mm dd yyyy" 实际上是数字,但这也适用于字符串。
var date ="01 02 1292";
var dateArr = date.match(/[^\s]+|\s/g);
document.write(JSON.stringify(dateArr));
简单:
> "10 Jan 2015".split(/\b/g)
< ["10", " ", "Jan", " ", "2015"]
这将在单词边界上拆分。
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")));
我有字符串说 "dd month yyyy",我想拆分为数组,如 ["dd"、" "、"month"、" "、"yyyy"]。
我目前所拥有的和这个方法有效。但我正在寻找 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;
}
我假设 "mm dd yyyy" 实际上是数字,但这也适用于字符串。
var date ="01 02 1292";
var dateArr = date.match(/[^\s]+|\s/g);
document.write(JSON.stringify(dateArr));
简单:
> "10 Jan 2015".split(/\b/g)
< ["10", " ", "Jan", " ", "2015"]
这将在单词边界上拆分。
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")));