function compressNumber(number) {
return number.toString(36);
}
function decompressNumber(number) {
return parseInt(number, 36);
}
//Test
console.log("Basic number", 5, compressNumber(5));
console.log('Base 16 example', 15, compressNumber(15));
console.log('A "1" followed by 11 zeroes', Math.pow(10, 11), compressNumber(Math.pow(10, 11)));
console.log('A "1" followed by 11 zeroes, negative', -Math.pow(10, 11), compressNumber(-Math.pow(10, 11)));
console.log('A "1" followed by 11 zeroes, decompressing', Math.pow(10, 11), decompressNumber(compressNumber(Math.pow(10, 11))));
console.log('Biggest 12 digit compressed number', Math.pow(10, 11).toString().replace(/\d/ig, 'z'));
console.log('Biggest 12 digit compressed number decompressed', decompressNumber(Math.pow(10, 11).toString().replace(/\d/ig, 'z')));
为什么你使用eval获得数量在所有...串在其他地方定义,并evaling任意输入允许代码注入。 –
无论你想达到什么目的,都无法将13位数字放入12位而不会有任何损失。 – n00dl3