| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ellipsisString = exports.charAtLength = exports.strLen = void 0;
- var ELLIPSIS_CODE = '\u2026';
- /** 获取字符串长度 */
- function strLen(str) {
- var len = 0;
- for (var i = 0; i < str.length; i++) {
- len += charAtLength(str, i);
- }
- return len;
- }
- exports.strLen = strLen;
- /** 是否属于ASCII编码范畴 */
- function charAtLength(str, i) {
- if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) {
- return 1;
- }
- else {
- return 2;
- }
- }
- exports.charAtLength = charAtLength;
- /** 文本省略 */
- function ellipsisString(str, reseveLength, position) {
- if (position === void 0) { position = 'tail'; }
- var count = str.length;
- var rst = '';
- if (position === 'tail') {
- for (var i = 0, index = 0; i < reseveLength;) {
- var charLength = charAtLength(str, index);
- if (i + charLength <= reseveLength) {
- rst += str[index];
- i += charAtLength(str, index);
- index++;
- }
- else {
- break;
- }
- }
- rst += ELLIPSIS_CODE;
- }
- else if (position === 'head') {
- for (var i = 0, index = count - 1; i < reseveLength;) {
- var charLength = charAtLength(str, index);
- if (i + charLength <= reseveLength) {
- rst += str[index];
- i += charAtLength(str, index);
- index--;
- }
- else {
- break;
- }
- }
- rst = ELLIPSIS_CODE + rst;
- }
- else {
- var startStr = '';
- var endStr = '';
- for (var i = 0, startIndex = 0, endIndex = count - 1; i < reseveLength;) {
- var startCodeLen = charAtLength(str, startIndex);
- var hasAdd = false; // 设置标志位,防止头尾都没有附加字符
- if (startCodeLen + i <= reseveLength) {
- startStr += str[startIndex];
- startIndex++;
- i += startCodeLen;
- hasAdd = true;
- }
- var endCodeLen = charAtLength(str, endIndex);
- if (endCodeLen + i <= reseveLength) {
- endStr = str[endIndex] + endStr;
- i += endCodeLen;
- endIndex--;
- hasAdd = true;
- }
- if (!hasAdd) {
- // 如果都没有增加字符,说明都不适合则中断
- break;
- }
- }
- rst = startStr + ELLIPSIS_CODE + endStr;
- }
- return rst;
- }
- exports.ellipsisString = ellipsisString;
- //# sourceMappingURL=text.js.map
|