Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

levenshtein-search

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

levenshtein-search

A Javascript library for fuzzy substring searches.

  • 0.1.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
439
decreased by-10.95%
Maintainers
1
Weekly downloads
 
Created
Source

A Javascript library for fuzzy substring search.

Features

  • Optimized for many use cases, including:
    • Long sub-strings with small max. distance
    • Long sub-strings with large max. distance
  • Non-trivial, rarely implemented algorithms
  • Simple interface, automatically uses the most appropriate algorithm.
  • Extensive test suite
  • No dependencies

Examples

fuzzySearch()

A generator function which yields all fuzzy matches of 'needle' in 'haystack', matching to within the given maximum Levenshtein distance.

> [...fuzzySearch('PATTERN', '---PATERN---', 1)]
[ { start: 3, end: 9, dist: 1 } ]
> [...fuzzySearch('elephant', 'There is nothing relevant here', 1)]
[]
> [...fuzzySearch('elephant', 'There is nothing relevant here', 2)]
[ { start: 18, end: 25, dist: 2 } ]
> [...fuzzySearch('erors', 'Some text with errors in it', 1)]
[ { start: 17, end: 21, dist: 1 },
  { start: 15, end: 21, dist: 1 } ]
> var text = 'There are many strange words in this world, not all worth mentioning.'
> [...fuzzySearch('word', text, 0)]
[ { start: 23, end: 27, dist: 0 } ]
> [...fuzzySearch('word', text, 1)]
[ { start: 24, end: 27, dist: 1 },
  { start: 23, end: 27, dist: 0 },
  { start: 37, end: 41, dist: 1 },
  { start: 37, end: 42, dist: 1 },
  { start: 52, end: 56, dist: 1 } ]
> [...fuzzySearch('warts', text, 1)]
[]
> [...fuzzySearch('warts', text, 2)]
[ { start: 23, end: 28, dist: 2 },
  { start: 52, end: 57, dist: 2 } ]
editDistance()

Computes the edit distance, a.k.a. the Levenshtein distance, between two strings.

> editDistance('elephant', 'relevant')
3
> editDistance('same', 'same')
0
> editDistance('error', 'erorr')
2
isEditDistanceNoGreaterThan()

This is optimized to do less computation than editDistance(), much less when the given maximum distance is small compared to the lengths of the inputs.

> isEditDistanceNoGreaterThan('elephant', 'relevant', 3)
true
> isEditDistanceNoGreaterThan('elephant', 'relevant', 2)
false

Notes

  1. This is a partial Javascript port of the Python 'fuzzysearch' library, which is written by the same author and licensed under similar terms.
  2. Filtering of redundant results is currently not implemented.

Licensing

© 2018 Tal Einat.

Licensed under the terms of the MIT license. See LICENSE for details.

Keywords

FAQs

Package last updated on 07 Jun 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc