phpjs
Version:
83 lines (64 loc) • 2.57 kB
Markdown
layout: page
title: "JavaScript explode function"
comments: true
sharing: true
footer: true
alias:
- /functions/view/explode:396
- /functions/view/explode
- /functions/view/396
- /functions/explode:396
- /functions/396
<!-- Generated by Rakefile:build -->
A JavaScript equivalent of PHP's explode
{% codeblock strings/explode.js lang:js https://raw.github.com/kvz/phpjs/master/functions/strings/explode.js raw on github %}
function explode (delimiter, string, limit) {
// From: http://phpjs.org/functions
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// * example 1: explode(' ', 'Kevin van Zonneveld');
// * returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
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;
}
{% endcodeblock %}
- [Raw function on GitHub](https://github.com/kvz/phpjs/blob/master/functions/strings/explode.js)
Please note that php.js uses JavaScript objects as substitutes for PHP arrays, they are
the closest match to this hashtable-like data structure.
Please also note that php.js offers community built functions and goes by the
[McDonald's Theory](https://medium.com/what-i-learned-building/9216e1c9da7d). We'll put online
functions that are far from perfect, in the hopes to spark better contributions.
Do you have one? Then please just:
- [Edit on GitHub](https://github.com/kvz/phpjs/edit/master/functions/strings/explode.js)
### Example 1
This code
{% codeblock lang:js example %}
explode(' ', 'Kevin van Zonneveld');
{% endcodeblock %}
Should return
{% codeblock lang:js returns %}
{0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
{% endcodeblock %}
### Other PHP functions in the strings extension
{% render_partial _includes/custom/strings.html %}