| var $export = require('./_export'); |
| var defined = require('./_defined'); |
| var fails = require('./_fails'); |
| var spaces = require('./_string-ws'); |
| var space = '[' + spaces + ']'; |
| var non = '\u200b\u0085'; |
| var ltrim = RegExp('^' + space + space + '*'); |
| var rtrim = RegExp(space + space + '*$'); |
| |
| var exporter = function (KEY, exec, ALIAS) { |
| var exp = {}; |
| var FORCE = fails(function () { |
| return !!spaces[KEY]() || non[KEY]() != non; |
| }); |
| var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; |
| if (ALIAS) exp[ALIAS] = fn; |
| $export($export.P + $export.F * FORCE, 'String', exp); |
| }; |
| |
| // 1 -> String#trimLeft |
| // 2 -> String#trimRight |
| // 3 -> String#trim |
| var trim = exporter.trim = function (string, TYPE) { |
| string = String(defined(string)); |
| if (TYPE & 1) string = string.replace(ltrim, ''); |
| if (TYPE & 2) string = string.replace(rtrim, ''); |
| return string; |
| }; |
| |
| module.exports = exporter; |