UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

29 lines (28 loc) 915 B
export const extractNumbersFromString = (input) => { return (input.match(/\d+/g) || [])?.map(Number); }; export const getLevenshteinDistance = (str1, str2) => { if (str1 === str2) return 0; const lenA = str1?.length; const lenB = str2?.length; if (lenA < lenB) { return getLevenshteinDistance(str2, str1); } let prev = Array.from({ length: lenB + 1 }, (_, j) => j); let curr = new Array(lenB + 1); for (let i = 1; i <= lenA; i++) { curr[0] = i; for (let j = 1; j <= lenB; j++) { curr[j] = str1[i - 1] === str2[j - 1] ? prev[j - 1] : 1 + Math.min(prev[j], curr[j - 1], prev[j - 1]); } [prev, curr] = [curr, prev]; } return prev[lenB]; }; export function countWords(text) { return (text?.match(/\p{L}[\p{L}\p{M}\p{Pd}'’]*|\p{N}+/gu) || [])?.length; }