JSFiddle - React, Tailwind, and code Playground

by asdf

JavaScript

// http://goog.co/12345535324553
var a = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; // a.length=62
//[a-zA-Z0-9]
//26+26+10=62
// number = 123;
function id2Url(number) {
   var url = [];
   var i;
   while (number > 0) {
     i = number%a.length;
     url.push(a[i]);
     number = Math.floor(number/a.length);
   }
   url.reverse();
   return url.join('');
}

console.log(id2Url(3911));
console.log(id2Url(217761));
console.log(id2Url(3423542342342342));

function url2Id(url) {
  var number = 0;
  // 48-57 numbers
  // 65-90 A-Z
  // 97-122 a-z
  var c;
  for(var i = 0; i < url.length; i++) {
    c = url[i].charCodeAt(0);
    sub = 0;
    if (c >= 97 && c <= 122) {
    	sub = 97;
    }
    if (c >= 65 && c <= 90) {
    	sub = 65-26;
    }
    if (c >= 48 && c <= 57) {
    	sub = 48-26-26;
    }
    number = number * a.length + c-sub;
  }
  return number;
}
console.log(url2Id('bbf'));
console.log(url2Id('4Or'));
console.log(url2Id('pQjxTDwzy'));