This commit is contained in:
Putoo
2026-05-29 19:06:51 +08:00
parent 69ae1e3174
commit bd1535aee9
48 changed files with 1571 additions and 133 deletions

View File

@@ -0,0 +1,43 @@
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, '\\$&')
}
}