Login dark

javascript

URL编码

a='http://www.baidu.com/s?wd=老王&p=365#title1'
escape(a)
"http%3A//www.baidu.com/s%3Fwd%3D%u8001%u738B%26p%3D365%23title1"

encodeURI(a)
"http://www.baidu.com/s?wd=%E8%80%81%E7%8E%8B&p=365#title1"

encodeURIComponent(a)
"http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E8%80%81%E7%8E%8B%26p%3D365%23title1"

unescape(escape(a))==a
true

decodeURI(encodeURI(a))==a
true

decodeURIComponent(encodeURIComponent(a))==a
true

escape()会排除* + - . / @ _ 0-9 a-z A-Z

encodeURI()会排除! # $ & ' ( ) * + , - . / : ; = ? @ _ ~ 0-9 a-z A-Z

encodeURIComponent()会排除! ' ( ) * - . _ ~ 0-9 a-z A-Z

escape() 所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)

encodeURI() 可直接编码URI并且可以被浏览器识别,另外两个会破坏URI中的语法,不能继续作为URI直接使用。

encodeURIComponent() 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。

进制转换

//十进制转其他  
var x=110;
alert(x);
alert(x.toString(8));
alert(x.toString(32));
alert(x.toString(16));
//其他转十进制
var x='110';
alert(parseInt(x,2));
alert(parseInt(x,8));
alert(parseInt(x,16));
//其他转其他
//先用parseInt转成十进制再用toString转到目标进制
alert(String.fromCharCode(parseInt(141,8)))
alert(parseInt('ff',16).toString(2));

ASCII & HEX

//ASCII
'A'.charCodeAt()
65

String.fromCharCode(65)
"A"

//HEX
'A'.charCodeAt().toString(16)
"41"

String.fromCharCode(parseInt('A'.charCodeAt().toString(16),16))
"A"

String.fromCharCode(parseInt("41",16))
"A"

BASE64

btoa('password')
"cGFzc3dvcmQ="

atob("cGFzc3dvcmQ=")
"password"

JSON

//json2string
JSON.stringify({"a":2})
//"{"a":2}"

//string2json
JSON.parse('{"a":2}')
//{a: 2}

cookie

//设置Cookie  
function SetCookie(name, value) {
    var exp = new Date();
    exp.setTime(exp.getTime() + 3 * 24 * 60 * 60 * 1000); //3天过期
    document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + exp.toGMTString()+";path=/";
    return true;
};
document.cookie='ISDARK=1;';
document.cookie='ISDARK=1;path=/';
document.cookie='ISDARK=1;';