{"_id":"fuzzysearch","_rev":"326097","name":"fuzzysearch","description":"Tiny and blazing-fast fuzzy search in JavaScript","dist-tags":{"latest":"1.0.3"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"time":{"modified":"2021-06-07T02:44:43.000Z","created":"2015-03-03T19:53:04.724Z","1.0.3":"2015-03-06T16:12:53.547Z","1.0.2":"2015-03-05T01:54:01.732Z","1.0.1":"2015-03-03T22:48:44.268Z","1.0.0":"2015-03-03T19:53:04.724Z"},"users":{"vutran":true,"moimikey":true,"chalassa":true,"ruyadorno":true},"author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"repository":{"type":"git","url":"git://github.com/bevacqua/fuzzysearch.git"},"versions":{"1.0.3":{"name":"fuzzysearch","description":"Tiny and blazing-fast fuzzy search in JavaScript","version":"1.0.3","homepage":"https://github.com/bevacqua/fuzzysearch","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/fuzzysearch.git"},"scripts":{"test":"jshint . && tape test/*.js"},"devDependencies":{"jshint":"^2.6.0","tape":"^3.5.0"},"gitHead":"1f4d8d779611544e3b165344a998ed0641e317ef","bugs":{"url":"https://github.com/bevacqua/fuzzysearch/issues"},"_id":"fuzzysearch@1.0.3","_shasum":"dffc80f6d6b04223f2226aa79dd194231096d008","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.10.26","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"dffc80f6d6b04223f2226aa79dd194231096d008","size":2901,"noattachment":false,"key":"/fuzzysearch/-/fuzzysearch-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/fuzzysearch/download/fuzzysearch-1.0.3.tgz"},"directories":{},"publish_time":1425658373547,"_cnpm_publish_time":1425658373547,"_hasShrinkwrap":false},"1.0.2":{"name":"fuzzysearch","description":"Fuzzy search in JavaScript","version":"1.0.2","homepage":"https://github.com/bevacqua/fuzzysearch","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/fuzzysearch.git"},"scripts":{"test":"jshint . && tape test/*.js"},"devDependencies":{"jshint":"^2.6.0","tape":"^3.5.0"},"gitHead":"4a02b2e965ffe1a28c1aa444f57c4d9b63b5df8a","bugs":{"url":"https://github.com/bevacqua/fuzzysearch/issues"},"_id":"fuzzysearch@1.0.2","_shasum":"720ce4c35f13312e3e0a7fb8086287efd95d1c23","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.10.26","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"720ce4c35f13312e3e0a7fb8086287efd95d1c23","size":2340,"noattachment":false,"key":"/fuzzysearch/-/fuzzysearch-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/fuzzysearch/download/fuzzysearch-1.0.2.tgz"},"directories":{},"publish_time":1425520441732,"_cnpm_publish_time":1425520441732,"_hasShrinkwrap":false},"1.0.1":{"name":"fuzzysearch","description":"Fuzzy search in JavaScript","version":"1.0.1","homepage":"https://github.com/bevacqua/fuzzysearch","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/fuzzysearch.git"},"scripts":{"test":"jshint . && tape test/*.js"},"devDependencies":{"jshint":"^2.6.0","tape":"^3.5.0"},"gitHead":"908790af10e11625a1d91bf16aa8ef1c25c59604","bugs":{"url":"https://github.com/bevacqua/fuzzysearch/issues"},"_id":"fuzzysearch@1.0.1","_shasum":"7842c551d831d81f0a67e27b3fa0fd8629880176","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.10.26","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"7842c551d831d81f0a67e27b3fa0fd8629880176","size":2288,"noattachment":false,"key":"/fuzzysearch/-/fuzzysearch-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/fuzzysearch/download/fuzzysearch-1.0.1.tgz"},"directories":{},"publish_time":1425422924268,"_cnpm_publish_time":1425422924268,"_hasShrinkwrap":false},"1.0.0":{"name":"fuzzysearch","description":"Fuzzy search in JavaScript","version":"1.0.0","homepage":"https://github.com/bevacqua/fuzzysearch","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/fuzzysearch.git"},"scripts":{"test":"jshint . && tape test/*.js"},"devDependencies":{"jshint":"^2.6.0","tape":"^3.5.0"},"gitHead":"724e8959fd4874572ec3fea71fde06f1b5d95863","bugs":{"url":"https://github.com/bevacqua/fuzzysearch/issues"},"_id":"fuzzysearch@1.0.0","_shasum":"2893ed62030510cbc56ce01094cf59553aea0b38","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.10.26","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"2893ed62030510cbc56ce01094cf59553aea0b38","size":2147,"noattachment":false,"key":"/fuzzysearch/-/fuzzysearch-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/fuzzysearch/download/fuzzysearch-1.0.0.tgz"},"directories":{},"publish_time":1425412384724,"_cnpm_publish_time":1425412384724,"_hasShrinkwrap":false}},"readme":"# fuzzysearch\n\n> Tiny and blazing-fast fuzzy search in JavaScript\n\nFuzzy searching allows for flexibly matching a string with partial input, useful for filtering data very quickly based on lightweight user input.\n\n# Demo\n\nTo see `fuzzysearch` in action, head over to [bevacqua.github.io/horsey][3], which is a demo of an autocomplete component that uses `fuzzysearch` to filter out results based on user input.\n\n# Install\n\nFrom `npm`\n\n```shell\nnpm install --save fuzzysearch\n```\n\n# `fuzzysearch(needle, haystack)`\n\nReturns `true` if `needle` matches `haystack` using a fuzzy-searching algorithm. Note that this program doesn't implement _[levenshtein distance][2]_, but rather a simplified version where **there's no approximation**. The method will return `true` only if each character in the `needle` can be found in the `haystack` and occurs after the preceding character.\n\n```js\nfuzzysearch('twl', 'cartwheel') // <- true\nfuzzysearch('cart', 'cartwheel') // <- true\nfuzzysearch('cw', 'cartwheel') // <- true\nfuzzysearch('ee', 'cartwheel') // <- true\nfuzzysearch('art', 'cartwheel') // <- true\nfuzzysearch('eeel', 'cartwheel') // <- false\nfuzzysearch('dog', 'cartwheel') // <- false\n```\n\nAn exciting application for this kind of algorithm is to filter options from an autocomplete menu, check out [horsey][3] for an example on how that might look like.\n\n# But! _`RegExp`s...!_\n\n![chart showing abysmal performance for regexp-based implementation][1]\n\n# License\n\nMIT\n\n[1]: https://cloud.githubusercontent.com/assets/934293/6495796/106a61a6-c2ac-11e4-945d-3d1bb066a76e.png\n[2]: http://en.wikipedia.org/wiki/Levenshtein_distance\n[3]: http://bevacqua.github.io/horsey\n","_attachments":{},"homepage":"https://github.com/bevacqua/fuzzysearch","bugs":{"url":"https://github.com/bevacqua/fuzzysearch/issues"},"license":"MIT"}