JavaScript Base62 encode/decoder
npm install base62A JavaScript Base62 encode/decoder
Base62 encoding converts numbers to ASCII strings (0-9, a-z and A-Z) and vice
versa, which typically results in comparatively short strings. Such identifiers
also tend to more readily identifiable by humans.
* 999 ≙ "g7"
* 9999 ≙ "2Bh"
* 238327 ≙ "ZZZ"
``shell`
npm install base62
alternatively using Yarn:
`shell`
yarn add base62
For backwards compatibility, Base62.js exposes v1.x's API by default – see
Legacy API below. For efficiency, v2.x's modernized API allows
selectively importing individual modules instead:
`javascript
var base62 = require("base62/lib/ascii");
base62.encode(999); // "g7"
base62.decode("g7"); // 999
`
This uses the default ASCII character set for encoding/decoding.
It's also possible to define a custom character set instead:
`javascript
var base62 = require("base62/lib/custom");
var charset = "~9876543210ABCDEFGHIJKLMNOPQRSTU$#@%!abcdefghijklmnopqrstuvw-=";
charset = base62.indexCharset(charset);
base62.encode(999, charset); // "F3"
base62.decode("F3", charset); // 999
`
Note that indexCharset typically expects the respective string to contain
exactly 62 unique character, but does not validate this for efficieny. In fact,
it's also possible to use characters sets with more than 62 characters in order
to achieve shorter identifiers for large numbers.
Base62.js v1.x's API is maintained for backwards compatibility.
`javascript
var base62 = require("base62");
base62.encode(999); // "g7"
base62.decode("g7"); // 999
`
This uses the default ASCII character set for encoding/decoding.
It's also possible to define a custom character set instead:
`javascript
var base62 = require("base62");
var charset = "~9876543210ABCDEFGHIJKLMNOPQRSTU$#@%!abcdefghijklmnopqrstuvw-=";
base62.setCharacterSet(charset);
base62.encode(999); // "F3"
base62.decode("F3"); // 999
`
setCharacterSet ensures that the respective string contains exactly 62 unique
characters.
Source code is hosted on GitHub.
Please report issues or feature requests in
GitHub Issues.
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a future version
unintentionally.
* Send me a pull request. Bonus points for topic branches.
* Update the version number in package.json.git tag -am "1.2.3" v1.2.3
* Commit this change with the respective version number as commit message
(e.g. "1.2.3").
* Create an annotated tag, using the prefixed version number (e.g.
).git push --tags origin master
* Publish the new version: and npm publish`.
Copyright (c) 2016 Andrew Nesbitt. See LICENSE for details.