UNPKG

diacritic-search-ts

Version:

A Node.js/TypeScript package for diacritic-insensitive search using regex

46 lines (45 loc) 2.77 kB
import { DiacriticMap } from './types.js'; import { slovakDiacriticMap, czechDiacriticMap, slovakCzechDiacriticMap } from './maps.js'; export { slovakDiacriticMap, czechDiacriticMap, slovakCzechDiacriticMap }; /** * Transformuje vstupný reťazec do formátu regulárneho výrazu * pre diakriticky necitlivé vyhľadávanie. * Každý základný znak v reťazci, ktorý má zodpovedajúci záznam v diakritickej mape, * sa nahradí regulárnym výrazom, ktorý zodpovedá tomuto znaku a jeho diakritickým variantom. * * @param searchString - Reťazec, ktorý sa má transformovať (typicky hľadaný výraz). * Môže obsahovať diakritiku, ktorá bude najprv normalizovaná. * @param diacriticMap - Diakritická mapa, ktorá definuje, ako sa majú znaky transformovať. * @returns Transformovaný reťazec pripravený na použitie v RegExp. * * @example * // Pre vyhľadávanie "Mesto" v textoch s diakritikou (napr. "Město", "Mesto") * const transformedQuery = diacriticInsensitiveTransform('Město', czechDiacriticMap); * // transformedQuery bude "M[e,é,ě]sto" * const searchRegex = new RegExp(transformedQuery, 'i'); * searchRegex.test('Město'); // true */ export declare function diacriticInsensitiveTransform(searchString: string, diacriticMap: DiacriticMap): string; /** * Vyhľadá reťazec v texte s ignorovaním diakritiky. * Táto funkcia je obal (wrapper) nad `diacriticInsensitiveTransform` a `RegExp`. * * @param text - Text, v ktorom sa má vyhľadávať. * @param query - Hľadaný reťazec (môže obsahovať diakritiku). * @param diacriticMap - Diakritická mapa, ktorá sa má použiť (napr. `slovakDiacriticMap`). * @param caseSensitive - Ak je `true`, vyhľadávanie bude citlivé na veľkosť písmen. Predvolené: `false`. * @returns `true`, ak sa zhoda nájde, inak `false`. */ export declare function searchDiacriticInsensitive(text: string, query: string, diacriticMap: DiacriticMap, caseSensitive?: boolean): boolean; /** * Vyhľadá viacero slov v texte s ignorovaním diakritiky. * Slova v dopyte môžu byť oddelené medzerami a poradie slov je dôležité. * Medzi hľadanými slovami sa povolí ľubovoľný počet znakov. * * @param text - Text, v ktorom sa má vyhľadávať. * @param query - Hľadaný reťazec obsahujúci jedno alebo viacero slov (môže obsahovať diakritiku). * @param diacriticMap - Diakritická mapa, ktorá sa má použiť. * @param caseSensitive - Ak je `true`, vyhľadávanie bude citlivé na veľkosť písmen. Predvolené: `false`. * @returns `true`, ak sa nájdu všetky slová v správnom poradí, inak `false`. */ export declare function searchMultiWordDiacriticInsensitive(text: string, query: string, diacriticMap: DiacriticMap, caseSensitive?: boolean): boolean;