foop
Version:
interfaces that describe their intentions.
53 lines (51 loc) • 4.32 kB
JavaScript
/**
* Removes (strips) whitespace from both ends of the string.
* @since 5.0.0-beta.5
* @memberOf string
* @symb ✂️
*
* @param {String} str The string to trim.
* @return {String} Trimmed version of `str`.
*
* @func
* @fork v0.6.0
* @category String
* @sig String -> String
*
* {@link https://github.com/processing-js/processing-js/blob/master/src/P5Functions/commonFunctions.js#L18 processing-js-trim}
* {@link https://github.com/madrobby/zepto/blob/master/src/zepto.js#L357 zepto-trim}
* {@link https://github.com/ramda/ramda/blob/master/src/trim.js ramda-trim}
* {@link https://github.com/lodash/lodash/blob/master/trim.js lodash-trim}
* @see {@link processing-js-trim}
* @see {@link lodash-trim}
* @see {@link ramda-trim}
* @see {@link zepto-trim}
*
* @example
*
* trim(' xyz ')
* //=> 'xyz'
*
* map(trim, split(',', 'x, y, z'))
* //=> ['x', 'y', 'z']
*
*/
module.exports = function trim(str /*, characters */) {
return str.trim()
}
// polyfill
// (function() {
// var ws = '\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'
// var zeroWidth = '\u200b'
// var hasProtoTrim = (typeof String.prototype.trim === 'function')
// if (!hasProtoTrim || (ws.trim() || !zeroWidth.trim())) {
// return _curry1(function trim(str) {
// var beginRx = new RegExp('^[' + ws + '][' + ws + ']*')
// var endRx = new RegExp('[' + ws + '][' + ws + ']*$')
// return str.replace(beginRx, '').replace(endRx, '')
// })
// }
// })()
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpbS5qcyIsInNvdXJjZXMiOlsidHJpbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgKHN0cmlwcykgd2hpdGVzcGFjZSBmcm9tIGJvdGggZW5kcyBvZiB0aGUgc3RyaW5nLlxuICogQHNpbmNlIDUuMC4wLWJldGEuNVxuICogQG1lbWJlck9mIHN0cmluZ1xuICogQHN5bWIg4pyC77iPXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0ciBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gKiBAcmV0dXJuIHtTdHJpbmd9IFRyaW1tZWQgdmVyc2lvbiBvZiBgc3RyYC5cbiAqXG4gKiBAZnVuY1xuICogQGZvcmsgdjAuNi4wXG4gKiBAY2F0ZWdvcnkgU3RyaW5nXG4gKiBAc2lnIFN0cmluZyAtPiBTdHJpbmdcbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Byb2Nlc3NpbmctanMvcHJvY2Vzc2luZy1qcy9ibG9iL21hc3Rlci9zcmMvUDVGdW5jdGlvbnMvY29tbW9uRnVuY3Rpb25zLmpzI0wxOCBwcm9jZXNzaW5nLWpzLXRyaW19XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21hZHJvYmJ5L3plcHRvL2Jsb2IvbWFzdGVyL3NyYy96ZXB0by5qcyNMMzU3IHplcHRvLXRyaW19XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3JhbWRhL3JhbWRhL2Jsb2IvbWFzdGVyL3NyYy90cmltLmpzIHJhbWRhLXRyaW19XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi9tYXN0ZXIvdHJpbS5qcyBsb2Rhc2gtdHJpbX1cbiAqIEBzZWUge0BsaW5rIHByb2Nlc3NpbmctanMtdHJpbX1cbiAqIEBzZWUge0BsaW5rIGxvZGFzaC10cmltfVxuICogQHNlZSB7QGxpbmsgcmFtZGEtdHJpbX1cbiAqIEBzZWUge0BsaW5rIHplcHRvLXRyaW19XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIHRyaW0oJyAgIHh5eiAgJylcbiAqICAgICAgLy89PiAneHl6J1xuICpcbiAqICAgICAgbWFwKHRyaW0sIHNwbGl0KCcsJywgJ3gsIHksIHonKSlcbiAqICAgICAgLy89PiBbJ3gnLCAneScsICd6J11cbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gdHJpbShzdHIgLyosIGNoYXJhY3RlcnMgKi8pIHtcbiAgcmV0dXJuIHN0ci50cmltKClcbn1cblxuLy8gcG9seWZpbGxcbi8vIChmdW5jdGlvbigpIHtcbi8vICAgdmFyIHdzID0gJ1xceDA5XFx4MEFcXHgwQlxceDBDXFx4MERcXHgyMFxceEEwXFx1MTY4MFxcdTE4MEVcXHUyMDAwXFx1MjAwMVxcdTIwMDJcXHUyMDAzJyArXG4vLyAgICAgICAgICAgICdcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1MjAyOCcgK1xuLy8gICAgICAgICAgICAnXFx1MjAyOVxcdUZFRkYnXG4vLyAgIHZhciB6ZXJvV2lkdGggPSAnXFx1MjAwYidcbi8vICAgdmFyIGhhc1Byb3RvVHJpbSA9ICh0eXBlb2YgU3RyaW5nLnByb3RvdHlwZS50cmltID09PSAnZnVuY3Rpb24nKVxuLy8gICBpZiAoIWhhc1Byb3RvVHJpbSB8fCAod3MudHJpbSgpIHx8ICF6ZXJvV2lkdGgudHJpbSgpKSkge1xuLy8gICAgIHJldHVybiBfY3VycnkxKGZ1bmN0aW9uIHRyaW0oc3RyKSB7XG4vLyAgICAgICB2YXIgYmVnaW5SeCA9IG5ldyBSZWdFeHAoJ15bJyArIHdzICsgJ11bJyArIHdzICsgJ10qJylcbi8vICAgICAgIHZhciBlbmRSeCA9IG5ldyBSZWdFeHAoJ1snICsgd3MgKyAnXVsnICsgd3MgKyAnXSokJylcbi8vICAgICAgIHJldHVybiBzdHIucmVwbGFjZShiZWdpblJ4LCAnJykucmVwbGFjZShlbmRSeCwgJycpXG4vLyAgICAgfSlcbi8vICAgfVxuLy8gfSkoKVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdDQSxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsSUFBSSxDQUFDLEdBQUcsb0JBQW9CO0VBQ3BELE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRTtDQUNsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=