Nodejs String Encode encode(str)

Here you can find the source of encode(str)

Method Source Code

String.prototype.encode = function(str) {
  var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  var encoded = [];
  var c = 0;//  ww w  .  j av a2  s  .  c  om
  while (c < str.length) {
      var b0 = str.charCodeAt(c++);
      var b1 = str.charCodeAt(c++);
      var b2 = str.charCodeAt(c++);
      var buf = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0);
      var i0 = (buf & (63 << 18)) >> 18;
      var i1 = (buf & (63 << 12)) >> 12;
      var i2 = isNaN(b1) ? 64 : (buf & (63 << 6)) >> 6;
      var i3 = isNaN(b2) ? 64 : (buf & 63);
      encoded[encoded.length] = chars.charAt(i0);
      encoded[encoded.length] = chars.charAt(i1);
      encoded[encoded.length] = chars.charAt(i2);
      encoded[encoded.length] = chars.charAt(i3);
  }
  return encoded.join('');
}

String.prototype.decode = function(str) {
  var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  var invalid = {
      strlen: (str.length % 4 != 0),
      chars:  new RegExp('[^' + chars + ']').test(str),
      equals: (/=/.test(str) && (/=[^=]/.test(str) || /={3}/.test(str)))
  };
  if (invalid.strlen || invalid.chars || invalid.equals)
      throw new Error('Invalid base64 data');
  var decoded = [];
  var c = 0;
  while (c < str.length) {
      var i0 = chars.indexOf(str.charAt(c++));
      var i1 = chars.indexOf(str.charAt(c++));
      var i2 = chars.indexOf(str.charAt(c++));
      var i3 = chars.indexOf(str.charAt(c++));
      var buf = (i0 << 18) + (i1 << 12) + ((i2 & 63) << 6) + (i3 & 63);
      var b0 = (buf & (255 << 16)) >> 16;
      var b1 = (i2 == 64) ? -1 : (buf & (255 << 8)) >> 8;
      var b2 = (i3 == 64) ? -1 : (buf & 255);
      decoded[decoded.length] = String.fromCharCode(b0);
      if (b1 >= 0) decoded[decoded.length] = String.fromCharCode(b1);
      if (b2 >= 0) decoded[decoded.length] = String.fromCharCode(b2);
  }
  return decoded.join('');
}

String.prototype.__defineGetter__('base64Encode', function(){
  return String.prototype.encode(this)
})

String.prototype.__defineGetter__('base64Decode', function(){
  return String.prototype.decode(this)
})

Related

  1. encode()
    String.prototype.encode = function() {
      var reference = "abcdefghijklmnopqrstuvwxyz !'.?;,";
      var encoding = ",;?.'! zyxwvutsrqponmlkjihgfedcba";
      var input = this.valueOf().toLowerCase();
      var output = "";
      var n, p;
      for (n=0; n<input.length; n++) {
        p = reference.indexOf(input.charAt(n));
        output += encoding.charAt(p);
    ...
    
  2. encode()
    String.prototype.encode = function() {
        return encodeURIComponent( String( this ) );
    };