/** * 本模块提供字符串处理相关方法。 * @packageDocumentation */ /** * 计算字符串长度的选项。 */ export interface IStrLenOptions { /** * 英文字符单位长度。 */ enLen?: number; /** * 非英文字符单位长度。 */ nonEnLen?: number; } /** * 裁剪字符串的选项。 */ export interface ICutStrOptions extends IStrLenOptions { /** * 省略符,默认为三个点号。 */ ellipsis?: string; } /** * 计算字符串长度。默认情况下,英文字符的单位长度为 1,非英文字符的单位长度为 2。 * @param str 字符串。 * @param options 为数字时表示非英文字符单位长度(此时英文字符单位长度为 1);为 Object 时表示选项。 * @return 字符串长度。 * @example * ```javascript * strLen('abcde;'); // 6 * strLen('abc测试;'); // 9 * strLen('abc测试;', 1); // 6 * strLen('abc测试;', { enLen: 0.5, nonEnLen: 1 }); // 4.5 * ``` */ export declare function strLen(str: string, options?: number | IStrLenOptions): number; /** * 如果目标字符串超出限制长度,则进行截断并拼接省略符号;否则返回目标字符串。 * 默认情况下,英文字符的单位长度为 1,非英文字符的单位长度为 2。 * @param str 目标字符串。 * @param length 限制的长度。 * @param options 选项。 * @return 截断后的字符串。 * @example * ```javascript * cutStr('测试一下', 5); // '测试...' * cutStr('测试一下', 8); // '测试一下' * curStr('1测试2测试3', 3.5, { enLen: 0.5, nonEnLen: 1 }); // 1测... * ``` */ export declare function cutStr(str: string, length: number, options?: ICutStrOptions): string; /** * 把指定字符串中的 HTML 预留字符替换成 HTML 实体。 * @param str 指定字符串。 * @return 替换后的字符串。 */ export declare function escapeHTML(str: string): string; /** * 把指定字符串中的 HTML 实体替换成 HTML 预留字符。 * @param str 指定字符串。 * @return 替换后的字符串。 */ export declare function unescapeHTML(str: string): string; /** * 移除指定字符串中的 HTML 标签。 * @param str 指定字符串。 * @return 处理后的字符串。 */ export declare function removeTags(str: string): string; /** * 把指定字符串中的换行符替换成 <br />。 * @param str 指定字符串。 * @return 替换后的字符串。 */ export declare function nl2br(str: string): string; /** * 生成随机字符串。 * @param length 字符串长度。 * @param prefix 字符串前缀(不计入长度)。 * @returns 生成的随机字符串。 */ export declare function randomStr(length: number, prefix?: string): string; /** * 生成 uuid(v4)。 * @returns uuid。 */ export declare function uuidV4(): string; /** * 版本号对比。 * @param verA 待比较版本 A。 * @param verB 待比较版本 B。 * @return 大于 0 时,表示版本 A 大于版本 B; * 小于 0 时,表示版本 B 大于版本 A; * 等于 0 时,表示两个版本号一致。 */ export declare function compareVersions(verA: string, verB: string): number; /** * 遮蔽字符的选项。 */ export interface IMaskCharsOptions { /** * 掩码字符,默认为 '*'。 */ maskChar?: string; /** * 遮蔽的开始位置(从 0 开始算),默认为 0。如果不指定,则 end 位置前的字符都被遮蔽。 */ start?: number; /** * 遮蔽的结束位置(从 0 开始算),默认为字符串的最后一位。如果不指定,则 start 位置后的字符都被遮蔽。 */ end?: number; } /** * 以特定遮蔽字符遮蔽指定字符串的部分字符。 * @param str 指定字符串。 * @param options 遮蔽选项。 * @returns 遮蔽后的结果。 * @example * ```javascript * maskChars('1234567890', { start: 3, end: 6 }); // '123****890' * maskChars('1234567890', { start: 3 }); // '123*******' * maskChars('1234567890', { end: 6 }); // '*******890' * maskChars('1234567890'); // '**********' * maskChars('1234567890', { maskChar: '#' }); // '##########' * ``` */ export declare function maskChars(str: string, options: IMaskCharsOptions): string;