Skip to content

Instantly share code, notes, and snippets.

@rob-bar
Created January 27, 2013 09:49
Show Gist options
  • Save rob-bar/4647604 to your computer and use it in GitHub Desktop.
Save rob-bar/4647604 to your computer and use it in GitHub Desktop.
#snippet #javascript #function explode(delimiter, string, limit)
function explode (delimiter, string, limit) {
if ( arguments.length < 2 || typeof delimiter == 'undefined' || typeof string == 'undefined' ) return null;
if ( delimiter === '' || delimiter === false || delimiter === null) return false;
if ( typeof delimiter == 'function' || typeof delimiter == 'object' || typeof string == 'function' || typeof string == 'object'){
return { 0: '' };
}
if ( delimiter === true ) delimiter = '1';
// Here we go...
delimiter += '';
string += '';
var s = string.split( delimiter );
if ( typeof limit === 'undefined' ) return s;
// Support for limit
if ( limit === 0 ) limit = 1;
// Positive limit
if ( limit > 0 ){
if ( limit >= s.length ) return s;
return s.slice( 0, limit - 1 ).concat( [ s.slice( limit - 1 ).join( delimiter ) ] );
}
// Negative limit
if ( -limit >= s.length ) return [];
s.splice( s.length + limit );
return s;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment