Initial commit
[yaffs-website] / node_modules / grunt-contrib-watch / node_modules / lodash / string / trim.js
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;