UNPKG

@beenotung/tslib

Version:
70 lines (69 loc) 3.1 kB
import { CompareResult } from './compare'; export declare function str_contains(pattern: string, target: string, ignore_case?: boolean): boolean; export declare function str_contains_any(patterns: string[], target: string, ignore_case?: boolean): boolean; /** * example : 'change the words' ~> 'Change The Words' * */ export declare function strToCapWords(s: string): string; export declare function string_to_chars(s: string): string[]; export declare function escapeRegExp(str: string): string; export declare function string_nbyte(s: string): number; export declare function str_like(a: string, b: string, ignore_case?: boolean): boolean; export declare function is_non_empty_string(s: string): boolean; export declare function str_dos2unix(s: string): string; export declare function str_unix2dos(s: string): string; export declare function str_minus(a: string, b: string): string; export type compare_chunks = Array<string | number>; export declare function split_string_num(s: string): compare_chunks; export declare function compare_string(a: string, b: string): CompareResult; export declare function extract_lines(s: string): string[]; export declare function capitalize(word: string): string; /** @description using perl naming conversion */ export declare function lcfirst(word: string): string; /** @description using perl naming conversion */ export declare function ucfirst(word: string): string; /** @description aware of unicode, e.g. emoji */ export declare function first_char(text: string): string | null; /** @description aware of unicode, e.g. emoji */ export declare function last_char(text: string): string | null; export declare function is_ascii_char(char: null | string): boolean; export declare function concat_words(start: string, end: string): string; /** * @description Normalize Unicode representation to NFC (Canonical Composition). * Preserves case for case-sensitive comparisons. * * The same visible character can have multiple Unicode representations: * - 'Amélie' with é as single code point (\u00e9) * - 'Amélie' with é + combining accent (\u0065\u0301) * * NFC normalization condenses these variants into a single canonical form, * useful for storing normalized text and matching in later searches. * * Source: https://stackoverflow.com/a/63013732/3156509 * * @example * 'Amélie' (composed) vs 'Amélie' (decomposed) -> same NFC output * 'CAFÉ' -> 'CAFÉ' (case preserved) */ export declare function normalizeUnicode(text: string): string; /** * @description Remove accent marks (diacritics) from text. * Uses NFD normalization to decompose characters, then removes combining marks. * * @example * 'Café' -> 'Cafe' * 'résumé' -> 'resume' * 'Amélie' -> 'Amelie' * 'München' -> 'Munchen' * 'naïve' -> 'naive' */ export declare function removeAccents(text: string): string; /** * @description Normalize text for search: NFC normalize, lowercase, remove accents, trim. * * @example * 'Café' -> 'cafe' * 'résumé' -> 'resume' * 'Amélie' -> 'amelie' */ export declare function normalizeForSearch(text: string): string;