Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80742 views
1
var baseToString = require('../internal/baseToString'),
2
charsLeftIndex = require('../internal/charsLeftIndex'),
3
charsRightIndex = require('../internal/charsRightIndex'),
4
isIterateeCall = require('../internal/isIterateeCall'),
5
trimmedLeftIndex = require('../internal/trimmedLeftIndex'),
6
trimmedRightIndex = require('../internal/trimmedRightIndex');
7
8
/**
9
* Removes leading and trailing whitespace or specified characters from `string`.
10
*
11
* @static
12
* @memberOf _
13
* @category String
14
* @param {string} [string=''] The string to trim.
15
* @param {string} [chars=whitespace] The characters to trim.
16
* @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
17
* @returns {string} Returns the trimmed string.
18
* @example
19
*
20
* _.trim(' abc ');
21
* // => 'abc'
22
*
23
* _.trim('-_-abc-_-', '_-');
24
* // => 'abc'
25
*
26
* _.map([' foo ', ' bar '], _.trim);
27
* // => ['foo', 'bar']
28
*/
29
function trim(string, chars, guard) {
30
var value = string;
31
string = baseToString(string);
32
if (!string) {
33
return string;
34
}
35
if (guard ? isIterateeCall(value, chars, guard) : chars == null) {
36
return string.slice(trimmedLeftIndex(string), trimmedRightIndex(string) + 1);
37
}
38
chars = (chars + '');
39
return string.slice(charsLeftIndex(string, chars), charsRightIndex(string, chars) + 1);
40
}
41
42
module.exports = trim;
43
44