Files
standardnotes-app-web/app/assets/javascripts/Utils/StringUtils.ts
2022-04-13 22:02:34 +05:30

30 lines
1002 B
TypeScript

export const splitRangeWithinString = (string: string, start: number, end: number) => {
const isStartOutOfBounds = start > string.length || start < 0
const isEndOutOfBounds = end > string.length || end < 0
const isInvalidRange = start > end
if (isStartOutOfBounds || isEndOutOfBounds || isInvalidRange) {
return [string]
} else {
return [string.slice(0, start), string.slice(start, end), string.slice(end)].filter(
(slice) => slice.length > 0,
)
}
}
export const getIndexOfQueryInString = (string: string, query: string) => {
const lowercasedTitle = string.toLowerCase()
const lowercasedQuery = query.toLowerCase()
return lowercasedTitle.indexOf(lowercasedQuery)
}
export const splitQueryInString = (string: string, query: string) => {
const indexOfQueryInTitle = getIndexOfQueryInString(string, query)
if (indexOfQueryInTitle < 0) {
return [string]
}
return splitRangeWithinString(string, indexOfQueryInTitle, indexOfQueryInTitle + query.length)
}