summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/strings/trim.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/locutus/php/strings/trim.js')
-rw-r--r--node_modules/locutus/php/strings/trim.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/node_modules/locutus/php/strings/trim.js b/node_modules/locutus/php/strings/trim.js
new file mode 100644
index 0000000..49b75fe
--- /dev/null
+++ b/node_modules/locutus/php/strings/trim.js
@@ -0,0 +1,48 @@
+'use strict';
+
+module.exports = function trim(str, charlist) {
+ // discuss at: http://locutus.io/php/trim/
+ // original by: Kevin van Zonneveld (http://kvz.io)
+ // improved by: mdsjack (http://www.mdsjack.bo.it)
+ // improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
+ // improved by: Kevin van Zonneveld (http://kvz.io)
+ // improved by: Steven Levithan (http://blog.stevenlevithan.com)
+ // improved by: Jack
+ // input by: Erkekjetter
+ // input by: DxGx
+ // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)
+ // 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 = [' ', '\n', '\r', '\t', '\f', '\x0b', '\xa0', '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200A', '\u200B', '\u2028', '\u2029', '\u3000'].join('');
+ var l = 0;
+ var i = 0;
+ str += '';
+
+ if (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 : '';
+};
+//# sourceMappingURL=trim.js.map \ No newline at end of file