1111
This commit is contained in:
43
Web/src/extends/StringExtend.ts
Normal file
43
Web/src/extends/StringExtend.ts
Normal 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, '\\$&')
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user