| var $export = require('./_export') |
| , defined = require('./_defined') |
| , fails = require('./_fails') |
| , spaces = require('./_string-ws') |
| , space = '[' + spaces + ']' |
| , non = '\u200b\u0085' |
| , ltrim = RegExp('^' + space + space + '*') |
| , 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; |