/** * 获取字符串的长度ascii长度为1 中文长度为2 * @param str * @returns {number} */ export const getStrFullLength = (str = '') => str.split('').reduce((pre, cur) => { const charCode = cur.charCodeAt(0) if (charCode >= 0 && charCode <= 128) { return pre + 1 } return pre + 2 }, 0) /** * 给定一个字符串和一个长度,将此字符串按指定长度截取 * @param str * @param maxLength * @returns {string} */ export const cutStrByFullLength = (str = '', maxLength) => { let showLength = 0 return str.split('').reduce((pre, cur) => { const charCode = cur.charCodeAt(0) if (charCode >= 0 && charCode <= 128) { showLength += 1 } else { showLength += 2 } if (showLength <= maxLength) { return pre + cur } return pre }, '') }