Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 1x 1x 6x 6x 6x 6x 1x | /* eslint-disable no-control-regex */ /** * 从左到右取字符串,中文算两个字符 * @method getLeftByteString * @param {String} str * @param {Number} lens * @return {String} str * @example * import { getLeftByteString } from '@spore-ui/tskit'; * //向汉编致敬 * getLeftByteString('世界真和谐', 6); // '世界真' */ import { byteLength } from './byteLength'; export function getLeftByteString(str: string, lens: number): string { const proxyStr = str.replace(/\*/g, ' ') .replace(/[^\x00-\xff]/g, '**'); const proxyLength = proxyStr.slice(0, lens) .replace(/\*\*/g, ' ') .replace(/\*/g, '').length; let rs = str.slice(0, proxyLength); if (byteLength(rs) > lens && lens > 0) { rs = rs.slice(0, rs.length - 1); } return rs; } export default getLeftByteString; |