UNPKG

@kitmi/utils

Version:

A JavaScript utility library for both server and browser

49 lines (39 loc) 973 B
const pairs = { '(': ')', '[': ']', '{': '}', '<': '>', }; /** * Unwrap a string * @function string.unwrap * @param {String} str * @param {String} [startToken] - Start token, default " * @param {String} [endToken] - End token, default " * @returns {String} */ function unwrap(str, startToken, endToken) { if (typeof str !== 'string') { return str; } if (str.length < 2) { return str; } if (startToken == null && endToken == null) { let start = str[0]; let end = str[str.length - 1]; const endToken2 = pairs[start]; if (endToken2 == null || end !== endToken2) { return str; } return str.slice(1, -1); } if (endToken == null) { endToken = startToken; } if (str.startsWith(startToken) && str.endsWith(endToken)) { return str.slice(startToken.length, -endToken.length); } return str; } export default unwrap;