You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
894 B
JavaScript
30 lines
894 B
JavaScript
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; |