一、cookie
Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据。浏览器需要保存这段数据,不会轻易删除(保存在计算机中)。此后每次浏览器访问该服务器,都必须带上这段数据。
cookie 实际上是指小量信息,只能存储4KB,是由 Web 服务器创建的,将信息存储在用户计算机上的文件,比如用户登录某个网站,浏览器会提示是否保存用户名和密码方便下次登录,如果保存就是将信息保存在cookie当中,Cookie 在计算机中是个存储在浏览器目录中的文本文件
cookie:由web服务器创建的,存储在本地计算机中的少容量数据,文本文件
用户名,密码,id,只能存储4KB
谷歌和欧朋不支持本地存储
如果没有过期时间,一般浏览结束后销毁cookie
cookie缺点:容量限制 4KB
由http明文传递,容易被窃用,盗取
cookie每一次请求都会自动添加到请求头Request Headers,增加容量
cookie的存储
语法: document.cookie = “key=value”;
//1.存储cookie, document.cookie="key=value";
document.cookie = "userName=txf123";
//2.单个存储,如果多个,多存储几遍
document.cookie = "passWord=123456";
//3.key值唯一,如果同名会覆盖
document.cookie = "passWord=654321";
cookie设置过期时间
语法:document.cookie = “key=value;expires=时间对象”;
var oDate = new Date();
oDate.setSeconds(oDate.getSeconds()+10); //10秒以后
document.cookie = "userName=123456;expires="+oDate.toGMTString();
获取cookie
语法:document.cookie
二、正则对象RegExp
正则表达式:是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符,及这些特定字符的组合,组成一个‘规则字符串’,这个规则字符串用来表达对字符串的一种过滤逻辑。简单的说就是规定文本检索的内容 ,通常被用来检索、替换文本。
正则对象的创建方式
关键字创建:new RegExp(检测的字符规则,修饰符)
字面量创建:/检测的字符规则/修饰符
区别:new创建方式可以放变量,字面量只能是字符
var reg = new RegExp("o","ig"); //关键字创建
var reg = /o/ig; //字面量创建
修饰符
g:global 全局匹配
i:ignore case 不区分大小写匹配
g:
var str = "下课了下课了下课了下课了";
var reg = /下/;
console.log(str.replace(reg,"上")); //上课了下课了下课了下课了
var reg = /下/g;
console.log(str.replace(reg,"上")); //上课了上课了上课了上课了
i:
var str = "hello world hello World";
var reg = /world/g;
console.log(str.replace(reg,"javaScript"));//hello javaScript hello World
var reg = /world/gi;
console.log(str.replace(reg,"javaScript"));//hello javaScript hello javaScript
检测方法
字符串检测方法
replace,split,search,match
正则检测方法
//test:判断字符串是否满足条件,是返回true,不是返回false
var str = "123456";
var reg = /^\d{6}$/;
console.log(reg.test(str)); //true
//exec:具体的检测,返回一个数组(检测到的内容,对应的下标),匹配不到返回null
var str = "wwrewr4fsf5fd";
var reg = /\d/g; //全局匹配,一次匹配一个,没有g表示下一次匹配的时候从头开始,有g从当前找到的这个位置开始往后
console.log(reg.exec(str)); //["4", index: 6, input: "wwrewr4fsf5fd", groups: undefined]
console.log(reg.exec(str)); //["5", index: 10, input: "wwrewr4fsf5fd", groups: undefined]
console.log(reg.exec(str)); //null
console.log(reg.exec(str)); //["4", index: 6, input: "wwrewr4fsf5fd", groups: undefined]
元字符
//---------------单个字符------------------------------
var str = "\nweb";
//1 . : 除换行符以外的任意字符
var reg = /./;
console.log(reg.exec(str)); //从左往右,匹配第一个满足条件的
var str = "web0708";
var reg = /web..../; //转义\
console.log(reg.exec(str));
//2 []:匹配字符集中任意一个字符
var str = "w2f3t3";
var reg = /[0-9a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_]/;
console.log(reg.exec(str));
//[^] : 匹配除字符集中任意一个字符
var str = "t34g$dsd&ds";
var reg = /[^0-9a-zA-Z]/;
console.log(reg.exec(str)); //$
//3. \d : 匹配数字 \D:匹配非数字
var str = "fda213fer";
var reg = /\d/;
console.log(reg.exec(str)); //2
var reg = /\D/;
console.log(reg.exec(str)); //f
//4. \w:匹配数字,字母,_ \W:匹配非数字,字母,_
var str = "3fd4";
console.log(/\w/.exec(str)); //3
console.log(/\W/.exec(str)); //null
//5. \s:匹配空格 \S:匹配非空格
var str = "fd fd";
console.log(/\s/.exec(str)); //" "
console.log(/\S/.exec(str)); //f
//使用正则,去除字符串首尾空格
var str = " hello world! ";
//6. ^a : 以a开头 a$:以a结尾
var str = "234568";
var reg = /^\d\d\d\d\d\d$/;
console.log(reg.exec(str));
//---------------------多个字符---------------------------
//?: a?:匹配前面的字符0次或1次
var str = "web";
var reg = /.?web/; //web前面可以有一位字符或者没有
console.log(reg.exec(str));
//*: a*:匹配前面的字符0次或多次
var str = "aaaawebaa";
var reg = /a*/;
console.log(reg.exec(str));//aaaa
//+ : a+ : 匹配前面字符1次或多次
var str = "web19834";
var reg = /web\d+/;
console.log(reg.exec(str));
//{x,y} : 最少x次,最多y次
var str = "14837498324329403";
var reg = /^\d{6}$/; //固定的位数
var reg = /^\d{6,}$/; //最少6位,没有上限
var reg = /^\d{6,18}$/; //最少6位,最多18位
//()
var str = "hello zlg";
var reg = /^hello ([a-z]{2,4})$/;
var arr = reg.exec(str); // ["hello zlg", "zlg"]
console.log(arr[1]); //zlg
console.log(RegExp.$1);
var str = "hello world";
var reg = /^(hello) (world)$/;
var arr = reg.exec(str); // ["hello world", "hello", "world"]
console.log(RegExp.$1);
console.log(RegExp.$2);
console.log(str.replace(reg,'$2 $1'));
//| 或
var str = "http://www.china.cn";
var reg = /^(http|https):\/\/www\.\w+\.(com|cn|net|edu|org)$/;
console.log(reg.exec(str)); //["http://www.china.cn","http","cn"]
//(?:) : 非获取匹配 (?:a|b)
var reg = /^(?:http|https):\/\/www\.\w+\.(?:com|cn|net|edu|org)$/;
console.log(reg.exec(str)); //["http://www.china.cn"]
//(?=):肯定预查 前瞻
var str = "1web";
var reg = /web(?=\d)/; //后面必须接数字
console.log(reg.exec(str));
//(?!):
var str = "web";
var reg = /web(?!\d)/; //后面不能接数字
console.log(reg.exec(str));
(?=.*\d.*) :必须有数字
(?!^\d+$):不能是纯数字
(?!^[a-zA-Z]+$):不能是纯数字
附加条件,不能单独使用