Revision: 18607
Updated Code
at October 5, 2009 03:22 by aadsm
Updated Code
String.prototype.split2 = function( delimiter, max )
{
max = max || Number.Infinity;
var arr = [];
if( delimiter.constructor != RegExp )
{
arr = this.split(delimiter);
if( arr.length > max )
{
arr.push( arr.splice(max-1, arr.length-max+1).join(delimiter) );
}
}
else
{
var old_ix = 0;
var match;
delimiter.lastIndex = 0; // reset the regexp
while( match = delimiter.exec(this) )
{
arr.push( this.slice(old_ix, delimiter.lastIndex-match[0].length) );
old_ix = delimiter.lastIndex;
if( arr.length+1 == max ) { break; }
}
arr.push(this.slice(old_ix));
}
return arr;
}
Revision: 18606
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 4, 2009 14:44 by aadsm
Initial Code
String.prototype.split2 = function( delimiter, max )
{
max = max || Number.Infinity;
var arr = [];
if( delimiter.constructor != RegExp )
{
arr = this.split(delimiter);
if( arr.length > max )
{
arr.push( arr.splice(max-1).join(delimiter) );
}
}
else
{
var old_ix = 0;
var match;
delimiter.lastIndex = 0; // reset the regexp
while( match = delimiter.exec(this) )
{
arr.push( this.slice(old_ix, delimiter.lastIndex-match[0].length) );
old_ix = delimiter.lastIndex;
if( arr.length+1 == max ) { break; }
}
arr.push(this.slice(old_ix));
}
return arr;
}
Initial URL
Initial Description
Initial Title
Split with a sane second argument behaviour
Initial Tags
Initial Language
JavaScript