@colony/unicode-confusables-noascii
v0.1.2
Published
Utility for finding confusing unicode in strings, no ascii
Downloads
111
Readme
unicode-confusables
Utility for finding confusing unicode, sourced from unicode UTS39's confusables.txt.
Installation
$ npm install unicode-confusables
Usage
const { isConfusing, confusables, rectifyConfusion } = require('unicode-confusables')
// check if a string is confusing
> isConfusing('fоо')
true
> isConfusing('foo')
false
// get the confusing parts of the string and their similarities
> confusables('fоо')
[
{ point: 'f' },
{ point: 'о', similarTo: 'o' },
{ point: 'о', similarTo: 'o' }
]
// apply the similar parts to the original string
> rectifyConfusion('fоо')
'foo'
// also finds hidden zero-width unicode
> isConfusing('vitalik')
true
> confusables('vitalik')
[
{ point: 'v' },
{ point: 'i' },
{ point: 't' },
{ point: 'a' },
{ point: '', similarTo: '' },
{ point: 'l' },
{ point: 'i' },
{ point: 'k' }
]
// even works with japanese!
> confusables('半角カナ')
[
{ point: '半' },
{ point: '角' },
{ point: 'カ', similarTo: '力' },
{ point: 'ナ' }
]
// It also thinks some parts of ascii confusing
> confusables('01')
[
{ point: '0', similarTo: 'O' },
{ point: '1', similarTo: 'l' }
]
Updating
Fetch and parse a fresh copy of confusables.txt
$ npm run build
License
MIT