export class StringExtend { /** * 去除字符串【开头和结尾】的指定字符 * @param str 原始字符串 * @param char 要删除的字符(单个) */ static trim(str: string | null | undefined, char: string): string { if (!str) return '' if (char.length !== 1) return str const escaped = this.#escapeRegChar(char) return str.replace(new RegExp(`^${escaped}+|${escaped}+$`, 'g'), '') } /** * 仅去除字符串【开头】的指定字符 */ static trimStart(str: string | null | undefined, char: string): string { if (!str) return '' if (char.length !== 1) return str const escaped = this.#escapeRegChar(char) return str.replace(new RegExp(`^${escaped}+`, 'g'), '') } /** * 仅去除字符串【结尾】的指定字符 */ static trimEnd(str: string | null | undefined, char: string): string { if (!str) return '' if (char.length !== 1) return str const escaped = this.#escapeRegChar(char) return str.replace(new RegExp(`${escaped}+$`, 'g'), '') } /** * 私有:转义正则特殊字符(. * + ? ^ $ 等) */ static #escapeRegChar(char: string): string { return char.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') } }