URL shortening
by Shishir Morshed
HTML
<input type="text" id="num62" name="num62" placeholder="base62"/>
<button id ="convertTo10">convertTo10</button>
<br>
<input type="text" id="num10" name="num10" placeholder="base10"/>
<button id ="convertTo62">convertTo62</button>
JavaScript
var digits = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
function getNthValue (base, power){
(base == null || base == 'undefined')? base = 62 : base = base;
var result = 1;
for(var i = 0; i < power; i++ ){
result *= base;
}
return result;
}
function urlInDecimal (num62){
var result = 0;
num62Length = num62.length;
for(var i = 0; i < num62Length; i++){
result += digits.indexOf(num62[i]) * getNthValue(62,(num62Length-i-1));
}
return result;
}
function reverse(s) {
return (s === '') ? '' : reverse(s.substr(1)) + s.charAt(0);
}
function urlInbase62 ( num10){
var result ='';
while( num10>62 ){
result += digits[num10%62];
num10 = Math.floor(num10/62);
}
if(num10 != 0){
result += digits[num10];
}
return reverse(result);
}
document.getElementById('convertTo10').addEventListener('click', function(){
var num10 = urlInDecimal(document.getElementById('num62').value);
alert(num10)
});
document.getElementById('convertTo62').addEventListener('click', function(){
var num62 = urlInbase62(document.getElementById('num10').value);
alert(num62)
});