JS中常用的编码解码方法

正常的方式(非加密)
1、escape/unescape:主要对中文汉字进行编码和解码(一般只有JS语言支持)(空格会用20%代替 剑指offer替换空格那道题测试通过)
2、encodeURI/decodeURI: 基本所有编程语言都支持
3、encoudeURIComponent/decoudeURIComponent 和第二种方式相似,区别在于,当问号传参包含特殊字符时,encodeURI不能编码一些特殊字符,只能使用encodeURIComponent处理

let str = 'http://www,baidu.com?',
    obj = {
        name: 'javascript',
        url: 'http://www.qq.com?user=111',
    };
// 需求是把对象obj的每一项属性都拼接到URL的末尾
for(key in obj){
    str += `${key}=${encodeURIComponent(obj[key])}&`;
    // 不能使用encodeURI,他不能处理一些特殊字符
}
console.log(str.replace(/&$/g, ' '));
// 后期获取URL问号参数的时候,把获取的值再依次解码

String.prototype.myQueryUrlParameter=function myQueryUrlParameter(){
    let reg=/[?&]([^?&=]+)(?:=([^?&=]*))?/g,
  obj={};
  this.replace(reg, (...arg)=>{
    let [, key, value] = arg;
    obj[key] = encodeURIComponent(value); // =>解码
});
return obj;
}

加密方法
1、可逆转加密(一般都是自己设置规则)
2、不可逆转(一般都是基于MD5加密完成,可能会把MD5加密后的结果二次加密)

你可能感兴趣的:(JS中常用的编码解码方法)