2024-11-05 10:14:41 +08:00

26 lines
807 B
TypeScript

import { toString } from './_toString'
import { baseTrim } from './_baseTrim'
import { baseToString } from './_baseToString'
import { stringToArray } from './_stringToArray'
import { charsStartIndex } from './_charStartIndex'
import { charsEndIndex } from './_charsEndIndex'
import { castSlice } from './_castSlice'
export function trim(string: string, chars?: string): string {
string = toString(string)
if (string && chars === undefined) {
return baseTrim(string)
}
if (!string || !(chars = baseToString(chars as string))) {
return string
}
const strSymbols = stringToArray(string),
chrSymbols = stringToArray(chars),
start = charsStartIndex(strSymbols, chrSymbols),
end = charsEndIndex(strSymbols, chrSymbols) + 1
return castSlice(strSymbols, start, end).join('')
}