basant307/AI_Governance_Project
045
1var baseToString = require('./_baseToString'),2 baseTrim = require('./_baseTrim'),3 castSlice = require('./_castSlice'),4 charsEndIndex = require('./_charsEndIndex'),5 charsStartIndex = require('./_charsStartIndex'),6 stringToArray = require('./_stringToArray'),7 toString = require('./toString');8 9/**10 * Removes leading and trailing whitespace or specified characters from `string`.11 *12 * @static13 * @memberOf _14 * @since 3.0.015 * @category String16 * @param {string} [string=''] The string to trim.17 * @param {string} [chars=whitespace] The characters to trim.18 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.19 * @returns {string} Returns the trimmed string.20 * @example21 *22 * _.trim(' abc ');23 * // => 'abc'24 *25 * _.trim('-_-abc-_-', '_-');26 * // => 'abc'27 *28 * _.map([' foo ', ' bar '], _.trim);29 * // => ['foo', 'bar']30 */31function trim(string, chars, guard) {32 string = toString(string);33 if (string && (guard || chars === undefined)) {34 return baseTrim(string);35 }36 if (!string || !(chars = baseToString(chars))) {37 return string;38 }39 var strSymbols = stringToArray(string),40 chrSymbols = stringToArray(chars),41 start = charsStartIndex(strSymbols, chrSymbols),42 end = charsEndIndex(strSymbols, chrSymbols) + 1;43 44 return castSlice(strSymbols, start, end).join('');45}46 47module.exports = trim;48 