ts
/*** * @Description: * @Author: Harry * @Date: 2021-12-03 20:01:23 * @Url: https://u.mr90.top * @github: https://github.com/rr210 * @LastEditTime: 2021-12-03 20:01:23 * @LastEditors: Harry */class Base64 { _keyStr: string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; constructor() { } encode = (input: string) => { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = this._utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; } decode = (input: string) => { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = this._utf8_decode(output); return output; } _utf8_encode = function (string: string) { string = string.replace(/\r\n/g, "\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if ((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; } _utf8_decode = function (utftext: string) { var string = ""; var i = 0; let c = 0 let c1 = 0; let c2 = 0; // console.log(object); while (i < utftext.length) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if ((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i + 1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i + 1); let c3 = utftext.charCodeAt(i + 2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; }}export default Base64
/* * @Description: * @Author: Harry * @Date: 2021-12-02 22:33:52 * @Url: https://u.mr90.top * @github: https://github.com/rr210 * @LastEditTime: 2021-12-18 20:53:35 * @LastEditors: Harry */const setCookie: Function = function (name: string, value: string) { let expdate = new Date(); //初始化时间 expdate.setTime(expdate.getTime() + 30 * 60 * 1000); //时间单位毫秒 document.cookie = name + "=" + escape(value) + ";expires=" + expdate.toUTCString() + ";path=/"; // document.cookie = name + "=" + value + ";path=/"; // 时间默认为当前会话可以不要,但路径要填写,因为JS的默认路径是当前页,如果不填,此cookie只在当前页面生效!}const getCookie: Function = function (a: string) { // console.log(a) let d; let b = document.cookie; let c = b.split(";"); // console.log(c); // console.log(escape('YWRtaW4=')); for (let e = 0; e < c.length; e++) { let f = c[e].split("="); if (a == f[0].toString().trim()) { d = f[1]; break; } } if (void 0 == d || null == d) { return ""; } else { let g = unescape(d.trim()); return g; }}const delCookie: Function = function (a: string) { let b = new Date(0).toUTCString(); document.cookie = a + "=;expires=" + b + ";path=/";}export default { setCookie, getCookie, delCookie}
js
/*** * @Description: * @Author: Harry * @Date: 2021-12-03 20:01:23 * @Url: https://u.mr90.top * @github: https://github.com/rr210 * @LastEditTime: 2021-12-27 16:47:53 * @LastEditors: Harry */class Base64 { _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; constructor(name) { this._keyStr = name } encode = (input) => { var output = '' var chr1, chr2, chr3, enc1, enc2, enc3, enc4 var i = 0 input = this._utf8_encode(input) while (i < input.length) { chr1 = input.charCodeAt(i++) chr2 = input.charCodeAt(i++) chr3 = input.charCodeAt(i++) enc1 = chr1 >> 2 enc2 = ((chr1 & 3) << 4) | (chr2 >> 4) enc3 = ((chr2 & 15) << 2) | (chr3 >> 6) enc4 = chr3 & 63 if (isNaN(chr2)) { enc3 = enc4 = 64 } else if (isNaN(chr3)) { enc4 = 64 } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4) } return output } decode = (input) => { var output = '' var chr1, chr2, chr3 var enc1, enc2, enc3, enc4 var i = 0 // eslint-disable-next-line no-useless-escape input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '') while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)) enc2 = this._keyStr.indexOf(input.charAt(i++)) enc3 = this._keyStr.indexOf(input.charAt(i++)) enc4 = this._keyStr.indexOf(input.charAt(i++)) chr1 = (enc1 << 2) | (enc2 >> 4) chr2 = ((enc2 & 15) << 4) | (enc3 >> 2) chr3 = ((enc3 & 3) << 6) | enc4 output = output + String.fromCharCode(chr1) if (enc3 !== 64) { output = output + String.fromCharCode(chr2) } if (enc4 !== 64) { output = output + String.fromCharCode(chr3) } } output = this._utf8_decode(output) return output } // eslint-disable-next-line camelcase _utf8_encode = function (string) { string = string.replace(/\r\n/g, '\n') var utftext = '' for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n) if (c < 128) { utftext += String.fromCharCode(c) } else if ((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192) utftext += String.fromCharCode((c & 63) | 128) } else { utftext += String.fromCharCode((c >> 12) | 224) utftext += String.fromCharCode(((c >> 6) & 63) | 128) utftext += String.fromCharCode((c & 63) | 128) } } return utftext } // eslint-disable-next-line camelcase _utf8_decode = function (utftext) { var string = '' var i = 0 let c = 0 let c2 = 0 // console.log(object); while (i < utftext.length) { c = utftext.charCodeAt(i) if (c < 128) { string += String.fromCharCode(c) i++ } else if ((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i + 1) string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)) i += 2 } else { c2 = utftext.charCodeAt(i + 1) const c3 = utftext.charCodeAt(i + 2) string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)) i += 3 } } return string }}export default Base64
/* * @Description: * @Author: Harry * @Date: 2021-12-02 22:33:52 * @Url: https://u.mr90.top * @github: https://github.com/rr210 * @LastEditTime: 2021-12-18 20:53:35 * @LastEditors: Harry */const setCookie = function (name, value) { const expdate = new Date() // 初始化时间 expdate.setTime(expdate.getTime() + 30 * 60 * 1000) // 时间单位毫秒 document.cookie = name + '=' + escape(value) + ';expires=' + expdate.toUTCString() + ';path=/' // document.cookie = name + "=" + value + ";path=/"; // 时间默认为当前会话可以不要,但路径要填写,因为JS的默认路径是当前页,如果不填,此cookie只在当前页面生效!}const getCookie = function (a) { // console.log(a) let d const b = document.cookie const c = b.split(';') // console.log(c); // console.log(escape('YWRtaW4=')); for (let e = 0; e < c.length; e++) { const f = c[e].split('=') if (a === f[0].toString().trim()) { d = f[1] break } // eslint-disable-next-line no-void } if (void 0 === d || d == null) { return '' } else { const g = unescape(d.trim()) return g }}const delCookie = function (a) { const b = new Date(0).toUTCString() document.cookie = a + '=;expires=' + b + ';path=/'}export default { setCookie, getCookie, delCookie}