export function sanitizeText(text: string): string {
return text
.replace(/[ \t]+/g, ' ')
.replace(/\n+/g, '\n')
.trim();
}
export function truncateText(text: string, maxLength: number): string {
if (text.length <= maxLength) return text;
return text.slice(0, maxLength - 3) + '...';
}
export function extractDomain(url: string): string {
try {
return new URL(url).hostname;
} catch {
return '';
}
}
export function searchInText(text: string, query: string): boolean {
return text.toLowerCase().includes(query.toLowerCase());
}
export function highlightMatches(text: string, query: string): string {
const regex = new RegExp(`(${query})`, 'gi');
return text.replace(regex, '**$1**');
}