GithubHelp home page GithubHelp logo

isabella232 / unicode-confusables Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ensdomains/unicode-confusables

0.0 0.0 0.0 121 KB

Utility for finding confusing unicode

License: MIT License

JavaScript 96.19% D 3.81%

unicode-confusables's Introduction

unicode-confusables

Utility for finding confusing unicode, sourced from unicode UTS39's confusables.txt.
Compound emojis are supported.

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

// check if a compound emoji is confusing
> isConfusing('🧛🏾‍♂')
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‍', similarTo: 'a' }, // zero-width unicode hidden in point (segment)
  { 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('mI01')
[
  { point: 'm', similarTo: 'rn' },
  { point: 'I', similarTo: 'l' },
  { point: '0', similarTo: 'O' },
  { point: '1', similarTo: 'l' }
]

Updating

Fetch and parse a fresh copy of confusables.txt

$ npm run build

License

MIT

unicode-confusables's People

Contributors

lastcanal avatar mdtanrikulu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.