You can not 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
899 B
30 lines
899 B
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;
|
|
|