65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
/**
|
|
* @file Trims and replaces sequences of whitespace characters by a single space.
|
|
* @version 3.0.0
|
|
* @author Xotic750 <Xotic750@gmail.com>
|
|
* @copyright Xotic750
|
|
* @license {@link <https://opensource.org/licenses/MIT> MIT}
|
|
* @module normalize-space-x
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
var libTrim = require('trim-x');
|
|
var trim2016 = libTrim.trim2016;
|
|
var trim2018 = libTrim.trim2018;
|
|
var Rx = require('cached-constructors-x').RegExp;
|
|
var libWhiteSpace = require('white-space-x');
|
|
var reNormalize2016 = new Rx('[' + libWhiteSpace.string2016 + ']+', 'g');
|
|
var reNormalize2018 = new Rx('[' + libWhiteSpace.string2018 + ']+', 'g');
|
|
var replace = ''.replace;
|
|
|
|
var $normalizeSpace2016 = function normalizeSpace2016(string) {
|
|
return replace.call(trim2016(string), reNormalize2016, ' ');
|
|
};
|
|
|
|
var $normalizeSpace2018 = function normalizeSpace2018(string) {
|
|
return replace.call(trim2018(string), reNormalize2018, ' ');
|
|
};
|
|
|
|
module.exports = {
|
|
/**
|
|
* Reference to normalizeSpace2018.
|
|
*/
|
|
normalizeSpace: $normalizeSpace2018,
|
|
|
|
/**
|
|
* This method strips leading and trailing white-space from a string,
|
|
* replaces sequences of whitespace characters by a single space,
|
|
* and returns the resulting string. (ES2016)
|
|
*
|
|
* @param {string} string - The string to be normalized.
|
|
* @throws {TypeError} If string is null or undefined or not coercible.
|
|
* @returns {string} The normalized string.
|
|
* @example
|
|
* var normalizeSpace = require('normalize-space-x');
|
|
*
|
|
* normalizeSpace(' \t\na \t\nb \t\n') === 'a b'; // true
|
|
*/
|
|
normalizeSpace2016: $normalizeSpace2016,
|
|
|
|
/**
|
|
* This method strips leading and trailing white-space from a string,
|
|
* replaces sequences of whitespace characters by a single space,
|
|
* and returns the resulting string. (ES2018)
|
|
*
|
|
* @param {string} string - The string to be normalized.
|
|
* @throws {TypeError} If string is null or undefined or not coercible.
|
|
* @returns {string} The normalized string.
|
|
* @example
|
|
* var normalizeSpace = require('normalize-space-x');
|
|
*
|
|
* normalizeSpace(' \t\na \t\nb \t\n') === 'a b'; // true
|
|
*/
|
|
normalizeSpace2018: $normalizeSpace2018
|
|
};
|