Here you can find the source of toBase64()
/*Extend the String object to create a function that converts the value of the String to and from Base64 using the ASCII character set. 'this is a string!!'.toBase64();/*from w ww . j av a 2s . c om*/ should return 'dGhpcyBpcyBhIHN0cmluZyEh' 'dGhpcyBpcyBhIHN0cmluZyEh'.fromBase64(); should return 'this is a string!!' see http://en.wikipedia.org/wiki/Base64 */ String.prototype.toBase64 = function () { var stringyBits = this.match(/.{1,3}/g); var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); result = stringyBits.map(function(threeLetters) { var letters = threeLetters.split(""); var ascii3 = letters.map(function(char) { return pad(char.charCodeAt(0).toString(2),8); }); var twentyFour3 = ascii3[0]+ascii3[1]+ascii3[2]; var twentyFour4 = twentyFour3.match(/.{1,6}/g); var newLetters = twentyFour4.map(function(bStr) { return alphabet[parseInt(bStr,2)]; }); return newLetters.join(""); }); return result.join(""); }; String.prototype.fromBase64 = function () { var stringyBits = this.match(/.{1,4}/g); var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); result = stringyBits.map(function(fourLetters) { var b64let = fourLetters.split(""); var b64num = b64let.map(function(char) { return alphabet.indexOf(char); }); var binary = b64num.map(function(char) { return pad(char.toString(2),6); }); var twentyFour4 = binary[0] + binary[1] + binary[2] + binary[3]; var twentyFour3 = twentyFour4.match(/.{1,8}/g); var newLetters = twentyFour3.map(function(str) { return String.fromCharCode(parseInt(str, 2)); }); return newLetters.join(""); }); return result.join(""); }; function pad(num, size) { var s = "000000000" + num; return s.substr(s.length-size); }
const CODES = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' String.prototype.toBase64 = function() { let out = '' for (let i = 0, length = this.length; i < length; i += 3) { let [a, b, c] = [...this.slice(i, i + 3)].map(c => c.charCodeAt(0)) bits = a << 16 | b << 8 | c out += CODES[bits >> 18 & 0x3F] out += CODES[bits >> 12 & 0x3F] out += b ? CODES[bits >> 6 & 0x3F] : '=' ...
String.prototype.toBase64 = function() { var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" var output = "" var chr1, chr2, chr3 var enc1, enc2, enc3, enc4 var i = 0 do { chr1 = this.charCodeAt(i++) chr2 = this.charCodeAt(i++) ...
String.prototype.toBase64 = function(){ var nToOrd = function(n){ return n < 26 ? "A".charCodeAt(0) + n : ( n < 52 ? "a".charCodeAt(0) - 26 + n : ( n < 62 ? "0".charCodeAt(0) - 52 + n : ( n==62 ? "+".charCodeAt(0) : "/".charCodeAt(0) ) ) ); ...
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); String.prototype.toBase64 = function() { var encoded = []; var a, b, c; for (var i = 0, len = this.length; i < len; i = i + 3) { a = this.charCodeAt(i); encoded.push(code[a >> 2]); b = this.charCodeAt(i + 1); if (isNaN(b)) { ...
String.prototype.toBase64 = function() { var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var encoded = ''; for(var i=0; i < this.length; i+=3) { var c1 = this.charCodeAt(i), c2 = this.charCodeAt(i+1), c3 = this.charCodeAt(i+2); encoded += chars[(c1 & 0xFC) >> 2]; encoded += chars[((c1 & 0x03) << 4) | ((c2 & 0xF0) >> 4)]; ...