Files
standardnotes-app-web/app/assets/javascripts/Utils/StringUtils.ts
2022-05-03 10:51:40 -05:00

28 lines
989 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)
}