BB26
BB26 is a JavaScript library for working with bijective base-26 (BB26) numbers
What is bijective base-26 numeration?
You’re probably familiar with BB26 numeration. It’s used for spreadsheet columns, license plate serials, and (probably?) more.
Here’s an example of decimal (base-10) numbers (the numbers you use every day to count things) compared to their corresponding BB26 numbers:
Decimal: | 1 | 2 | 3 | ... | 24 | 25 | 26 | 27 | 28 | 29 | ...
BB26: | A | B | C | ... | X | Y | Z | AA | AB | AC | ...
Install
Note
This package is a native ECMAScript Module (ESM). If your project is not ESM, read Sindre Sorhus’s Pure ESM package article.
npm install bb26
API
increment()
function increment(string: string): string;
Increments a bijective base-26 string by one numeral.
import { increment } from "bb26";
increment("A");
increment("Z");
increment("AA");
random()
function random(upper: string): string;
function random(lower: string, upper: string): string;
Produces a random string between the inclusive lower
and upper
bounds. If only one argument is provided, a string between 'A'
and the given string is returned.
import { random } from "bb26";
random("AAA");
random("AAA", "AAAA");
range()
function range(end: string): string[];
function range(start: string, end: string): string[];
Creates an array of bijective base-26 numerals progressing from start
up to, but not including, end
. If end
is not specified, it's set to start
with start
then set to 'A'
.
import { range } from "bb26";
range("B");
range("C");
range("B", "C");
range("B", "D");
range("Z", "AC");
toBb26()
function toBb26(number: number): string;
Converts a decimal number to a bijective base-26 string.
import { toBb26 } from "bb26";
toBb26(1);
toBb26(2);
toBb26(26);
toBb26(27);
toBb26(28);
toDecimal()
function toDecimal(string: string): number;
Converts a bijective base-26 string to a decimal number.
import { toDecimal } from "bb26";
toDecimal("A");
toDecimal("B");
toDecimal("Z");
toDecimal("AA");
toDecimal("AB");