phpjs
Version:
116 lines (98 loc) • 3.24 kB
Markdown
---
layout: page
title: "JavaScript trim function"
comments: true
sharing: true
footer: true
alias:
- /functions/view/trim:566
- /functions/view/trim
- /functions/view/566
- /functions/trim:566
- /functions/566
---
<!-- Generated by Rakefile:build -->
A JavaScript equivalent of PHP's trim
{% codeblock strings/trim.js lang:js https://raw.github.com/kvz/phpjs/master/functions/strings/trim.js raw on github %}
function trim (str, charlist) {
// From: http://phpjs.org/functions
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: mdsjack (http://www.mdsjack.bo.it)
// + improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
// + input by: Erkekjetter
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + input by: DxGx
// + improved by: Steven Levithan (http://blog.stevenlevithan.com)
// + tweaked by: Jack
// + bugfixed by: Onno Marsman
// * example 1: trim(' Kevin van Zonneveld ');
// * returns 1: 'Kevin van Zonneveld'
// * example 2: trim('Hello World', 'Hdle');
// * returns 2: 'o Wor'
// * example 3: trim(16, 1);
// * returns 3: 6
var whitespace, l = 0,
i = 0;
str += '';
if (!charlist) {
// default list
whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
} else {
// preg_quote custom list
charlist += '';
whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
}
l = str.length;
for (i = 0; i < l; i++) {
if (whitespace.indexOf(str.charAt(i)) === -1) {
str = str.substring(i);
break;
}
}
l = str.length;
for (i = l - 1; i >= 0; i--) {
if (whitespace.indexOf(str.charAt(i)) === -1) {
str = str.substring(0, i + 1);
break;
}
}
return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}
{% endcodeblock %}
- [Raw function on GitHub](https://github.com/kvz/phpjs/blob/master/functions/strings/trim.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/trim.js)
### Example 1
This code
{% codeblock lang:js example %}
trim(' Kevin van Zonneveld ');
{% endcodeblock %}
Should return
{% codeblock lang:js returns %}
'Kevin van Zonneveld'
{% endcodeblock %}
### Example 2
This code
{% codeblock lang:js example %}
trim('Hello World', 'Hdle');
{% endcodeblock %}
Should return
{% codeblock lang:js returns %}
'o Wor'
{% endcodeblock %}
### Example 3
This code
{% codeblock lang:js example %}
trim(16, 1);
{% endcodeblock %}
Should return
{% codeblock lang:js returns %}
6
{% endcodeblock %}
### Other PHP functions in the strings extension
{% render_partial _includes/custom/strings.html %}