29 lines
941 B
JavaScript
29 lines
941 B
JavaScript
|
var $export = require('./$.export')
|
||
|
, defined = require('./$.defined')
|
||
|
, fails = require('./$.fails')
|
||
|
, spaces = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
|
||
|
'\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
|
||
|
, space = '[' + spaces + ']'
|
||
|
, non = '\u200b\u0085'
|
||
|
, ltrim = RegExp('^' + space + space + '*')
|
||
|
, rtrim = RegExp(space + space + '*$');
|
||
|
|
||
|
var exporter = function(KEY, exec){
|
||
|
var exp = {};
|
||
|
exp[KEY] = exec(trim);
|
||
|
$export($export.P + $export.F * fails(function(){
|
||
|
return !!spaces[KEY]() || non[KEY]() != non;
|
||
|
}), '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;
|