string/truncate.jsjavascript
/**
* 将字符串截断到指定长度,并在截断处追加省略标记。
* @function truncate
* @memberof module:string
* @param {string} value 原始字符串
* @param {number} [length=30] 包含省略标记在内的最大长度
* @param {string} [omission='...'] 省略标记
* @returns {string} 截断后的新字符串
* @throws {TypeError|RangeError} 参数类型或长度不正确时抛出
*/
function truncate(value, length = 30, omission = '...') {
if (typeof value !== 'string' || typeof omission !== 'string') throw new TypeError('value and omission must be strings')
if (!Number.isInteger(length) || length < 0) throw new RangeError('length must be a non-negative integer')
if (value.length <= length) return value
if (omission.length >= length) return omission.slice(0, length)
return value.slice(0, length - omission.length) + omission
}
export default truncate