Skip to content

levenshteinSimilarity

Normalized Levenshtein similarity between two strings, in [0, 1] — 1 means identical, 0 means completely dissimilar relative to the longer string’s length. A convenience wrapper around levenshteinDistance for scoring/ranking use cases.

Available since v3.1.1

import { levenshteinSimilarity } from '@helpers4/string';
// or, from the all-in-one package (same code, one install):
import { levenshteinSimilarity } from 'helpers4/string';
levenshteinSimilarity(a: string, b: string, caseSensitive: boolean): number
ParameterTypeDescription
astringThe first string
bstringThe second string
caseSensitivebooleanWhether the comparison is case-sensitive. Defaults to `true`.

number — A similarity score between 0 and 1; 1 when both strings are empty

A normalized [0, 1] score, handy for fuzzy-matching/ranking.

levenshteinSimilarity('kitten', 'sitting')
// => 0.5714285714285714

Useful as a fuzzy-matching threshold cutoff.

levenshteinSimilarity('same', 'same')
// => 1

View source on GitHub