Skip to content

Instantly share code, notes, and snippets.

@jpemberthy
Created January 5, 2011 19:25
Show Gist options
  • Save jpemberthy/766855 to your computer and use it in GitHub Desktop.
Save jpemberthy/766855 to your computer and use it in GitHub Desktop.
/**
Based on https://github.com/sinefunc/base62
NOTE: both algorithms differ when decoding big integers:
https://skitch.com/jpemberthy/r8hes/screen-shot-2011-01-05-at-1.49.08-pm
*/
SIXTYTWO = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
var Base62 = function () {
return {
decode: function(base62) {
s = base62.split('').reverse();
total = 0;
$.each(s, function(index, _char) {
ord = SIXTYTWO.indexOf(_char);
if (ord != -1) {
total += ord * (Math.pow(62, index));
} else {
console.log("invalid char: " + _char);
}
});
return total;
}
}
}();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment