Revision: 12032
Updated Code
at May 3, 2009 14:53 by Sephr
Updated Code
if (delete base36)
const base36 = { // U+200B is a zero-width space
encode: function(str, separator)
Array.map(""+(str||""), function(c) c.charCodeAt(0).toString(36)).join(separator||"\u200b"),
decode: function(str, separator)
(""+(str||"")).split(separator||"\u200b").map(function(s) String.fromCharCode(parseInt(s, 36))).join(""),
ascii: {
encode: function(str)
Array.map(""+(str||""), function(c) {
var b36 = base36.encode(c, "");
if (b36.length === 1)
b36 = "0" + b36;
return b36;
}).join(""),
decode: function(str)
(""+(str||"")).replace(/[a-z0-9]{2}/gi, function(s) base36.decode(s))
}
};
Revision: 12031
Updated Code
at May 3, 2009 14:48 by Sephr
Updated Code
if (delete base36)
const base36 = { // U+200B is a zero-width space
encode: function(str, separator)
Array.map(""+str, function(c) c.charCodeAt(0).toString(36)).join(separator||"\u200b"),
decode: function(str, separator)
(""+str).split(separator||"\u200b").map(function(s) String.fromCharCode(parseInt(s, 36))).join("")
};
base36.encode.ascii = function(str)
Array.map(""+str, function(c) {
var b36 = base36.encode(c, "");
if (b36.length === 1)
b36 = "0" + b36;
return b36;
}).join("");
base36.decode.ascii = function(str)
(""+str).replace(/[a-z0-9]{2}/gi, function(s) base36.decode(s));
Revision: 12030
Updated Code
at May 3, 2009 14:47 by Sephr
Updated Code
if (delete base36)
const base36 = { // U+200B is a zero-width space
encode: function(str, separator)
Array.map(""+str, function(c) c.charCodeAt(0).toString(36)).join(separator||"\u200b"),
decode: function(str, separator)
(""+str).split(separator||"\u200b").map(function(s) String.fromCharCode(parseInt(s, 36))).join("")
};
base36.encode.ASCII = function(str)
Array.map(""+str, function(c) {
var b36 = base36.encode(c, "");
if (b36.length === 1)
b36 = "0" + b36;
return b36;
}).join("");
base36.decode.ASCII = function(str)
(""+str).replace(/[a-z0-9]{2}/gi, function(s) base36.decode(s));
Revision: 12029
Updated Code
at May 3, 2009 14:43 by Sephr
Updated Code
if (delete base36)
const base36 = { // U+200B is a zero-width space
encode: function(str, separator)
Array.map(""+str, function(c) c.charCodeAt(0).toString(36)).join(separator||"\u200b"),
decode: function(str, separator)
(""+str).split(separator||"\u200b").map(function(s) String.fromCharCode(parseInt(s, 36))).join("")
};
base36.encode.ASCII = function(str)
Array.map(""+str, function(c) {
var b36 = base36.encode(c, "");
if (b36.length === 1)
b36 = "0" + b36;
return b36;
}).join("");
base36.decode.ASCII = function(str)
(""+str).replace(/[a-z0-9]{2}/gi, base36.decode);
Revision: 12028
Updated Code
at May 3, 2009 14:35 by Sephr
Updated Code
if (delete base36)
const base36 = { // U+200B is a zero-width space
encode: function(str, separator)
Array.map(""+str, function(c) c.charCodeAt(0).toString(36)).join(separator||"\u200b"),
decode: function(str, separator)
(""+str).split(separator||"\u200b").map(function(s) String.fromCharCode(parseInt(s, 36))).join(""),
encodeASCII: function(str)
base36.encode(str, ""),
decodeASCII: function(str)
(""+str).replace(/[a-z]{2}/gi, base36.decode)
};
Revision: 12027
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 27, 2009 22:33 by Sephr
Initial Code
var base36 = {
encode: function(str, separator) {
var encoded = [];
for (var i=0; i<str.length; i++)
encoded.push(str.charCodeAt(i).toString(36))
return encoded.join(separator||"\u200b")
},
decode: function(str, separator) {
str = str.split(separator||"\u200b");
for (var i=0; i<str.length; i++)
str[i] = String.fromCharCode(parseInt(str[i], 36))
return str.join("")
}
};
Initial URL
Initial Description
base36 Encode/Decode Strings
====================
*Requires JavaScript 1.8 or higher*
Syntax:
`base36[.ascii].encode(str[, separator]):String`
`base36[.ascii].decode(str[, separator]):String`
Default character separator is ZERO WIDTH SPACE U+200B
Examples:
base36.encode("foobar", "-") == "2u-33-33-2q-2p-36"
base36.decode("2u-33-33-2q-2p-36", "-") == "foobar"
Initial Title
base36 Encode/Decode [JS 1.8]
Initial Tags
Initial Language
JavaScript