0.15.1 • Published 6 years ago

name-finder v0.15.1

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

name-finder

Sorts a list of strings by the similarity of the search value and filter with it

I will help if you have any difficulty =)

Contact me by github:heyderpd. I'll be glad to help you.

Thanks for npm~lucasmreis

Example of rank with list of strings:

import { regexName, match, rank } from 'name-finder'

const list = [
  'John Lennon',
  'José Sìlvéîrã',
  'Jose da Silva',
  'Jose Silveira',
  'Jôse Sìlveira'
]

const listSortByRank = rank({
  find: 'Jôse Sìlveira',
  list
})

listSortByRank = [
  'Jôse Sìlveira',
  'Jose Silveira',
  'José Sìlvéîrã',
  'Jose da Silva'
]

/*
Find:
  [J][o][s][e][ ][S][i][l][v][a]
Match chars:
  [J][o]hn L[e]nnon
  [J][o][s][e][ ]da [S][i][l][v][a]
*/

Example of rank with list of object's:

import { rank } from 'name-finder'

const list = [
  { deep: { name: 'John Lennon',   things: [1,2,3] }, },
  { deep: { name: 'José Sìlvéîrã', xyz: '123' }, },
  { deep: { name: 'Jose da Silva', r: 42 },      },
  { deep: { name: 'Jose Silveira', o: o },       },
  { deep: { name: 'Jôse Sìlveira', f: f }        }
]

const listSortByRank = rank({
  find: 'Jôse Sìlveira',
  list,
  propPath: ['deep', 'name'],
  limit: 50
})

listSortByRank = [
  { deep: { name: 'Jôse Sìlveira', f: f }       },
  { deep: { name: 'Jose Silveira', o: o }       },
  { deep: { name: 'José Sìlvéîrã', xyz: '123' } },
  { deep: { name: 'Jose da Silva', r: 42 }      }
]

Example of match:

const listOfNameAndRanks = match('Jôse Sìlveira', list)

listOfNameAndRanks = [
  { value: 'José Sìlvéîrã', match: 'José Sìlvéîrã', rank: 97.3  },
  { value: 'Jose da Silva', match: 'Jose Silv***a', rank: 58.53 },
  { value: 'Jose Silveira', match: 'Jose Silveira', rank: 98.92 },
  { value: 'Jôse Sìlveira', match: 'Jôse Sìlveira', rank: 100   }
]

Example of regexName:

const pattern = regexName(what).pattern

pattern = /(?:[^J]*([J]))?(?:[^oóòõôö]*([oóòõôö]))?(?:[^sśŝ]*([sśŝ]))?(?:[^eéèẽêë]*([eéèẽêë]))?(?:[^ ]*([ ]))?(?:[^sśŝ]*([sśŝ]))?(?:[^iíìĩîï]*([iíìĩîï]))?(?:[^lĺ]*([lĺ]))?(?:[^v]*([v]))?(?:[^eéèẽêë]*([eéèẽêë]))?(?:[^iíìĩîï]*([iíìĩîï]))?(?:[^rŕ]*([rŕ]))?(?:[^aáàãâä]*([aáàãâä]))?/i
0.15.1

6 years ago

0.15.0

6 years ago

0.11.3

7 years ago

0.11.0

7 years ago

0.10.1

7 years ago

0.10.0

7 years ago

0.9.1

7 years ago

0.9.0

7 years ago

0.8.10

7 years ago

0.8.9

7 years ago

0.8.5

7 years ago

0.8.4

7 years ago

0.8.3

7 years ago

0.8.2

7 years ago

0.8.1

7 years ago

0.8.0

7 years ago