cookie
http协议,超文本传输协议,属于应用层协议(无状态),数据链路层->网络层->传输层->应用层
cookie的概念,缓存在本地客户端的数据,谷歌可以保存170条,火狐100多条,IE相对少一些,浏览器关闭以后,cookie自动消失,如果不设置时间。
cookie的操作,增,删,改,查
console.log(document.cookie);//查询cookie
document.cookie = "username=honey";
var oDate = new Date();
oDate.setDate(oDate.getDate()+3);
document.cookie = "user=sarah;expire=" + oDate;//设置过期时间
document.cookie = "username=honey1";//修改cookie
var oDate = new Date();
oDate.setDate(oDate.getDate()-1);
document.cookie = "user=sarah;expire=" + oDate;//设置过期时间,相当于删除cookie
cookie的封装
function setCookie(name,value,day){
var oDate = new Date();
oDate.setDate(oDate.getDate()+day);
document.cookie(name + "=" + value + ";expire=" + oDate);
}
function getCookie(name){
var str = document.cookie;
var arr = str.split(";");
for(i = 0;i < arr.length; i++){
var arr1 = arr[i].split("=");
if(arr1[0] == name){
return arr1[1];
}
}
}
function removeCookie(name){
setCookie(name,1,-1);
}
七天免登陆
var aInput = document.getElementsByTagName("input");
var uName = aInput[0].value;
var uPsd = aInput[1].value;
if(getCookie("name")){
aInput[0].value = getCookie("name");
aInput[1].value = getCookie("password");
}
if(aInput[2].checked){
setCookie("name",uName,7);
setCookie("password",uPsd,7);
}
//正则表达式的概念与作用
//概念,用普通字符和特殊字符组成的对字符串进行过滤的逻辑公式
//正则表达式的创建方式
var reg = /abc/;//字面量的方式
var reg = new RegExp("abc");//构造函数
//正则表达式的用法
//匹配符,g:全局匹配 i忽略大小写
//test();是否含有相同的字符串,正则表达时的方法 ture false
var aes = "abc";
console.log(reg.test(aes));
//match();字符串的方法
var reg1 = /abc/gi;
var abc = "abcerdfabcsdffABc";
console.log(abc.match(reg1));//返回数组["abc","abc"],不加g返回不一样
//search();字符串方法,返回值:第一个匹配的子串下标。
//spilt();
//replace();
//exec();将匹配成功的内容放到数组里,正则表达时的方法
var reg2 = /abc/gi;
var abc2 = "abcerdfabcsdffABc";
var arr = reg2.exec(abc2);
console.log(reg2.exec(abc2));//这里注意是正则表达时的方法
console.log(reg2.exec(abc2));//如果要通过exec查找字符串中第二个匹配时,需要加上g,并且要写两遍匹配。
console.log(arr[0]);
//.:代表除了换行符之外的所有字符
var reg3 = /g..gle/;
var abc3 = "googleg--gle";
console.log(reg3.test(abc3));//这里注意是正则表达式的方法,.可以代表o也可以代表-
//*表示重复多次匹配0-n次
var reg4 = /g*gle/g;
var abc4 = "gggggggle";
console.log(reg4.test(abc4),abc4.match(reg4));
//+至少一次重复匹配,正则表达时的方法
var reg5 = /g+gle/gi;
var abc5 = "gle";//因为没有利用到+,所以不成功,ggle则可以,*可以是0次,区别点。
console.log(reg5.test(abc5));
//?:0-1次匹配
var reg6 = /g?gle/gi;
var abc6 = "ggggle";
console.log(reg6.test(abc6),abc6.match(reg6));//?也可以重复,返回true,但是match返回只有一个g,ggle
//[]表示可以出现的范围[0-9]
var reg7 = /[0-9]/gi;
var abc7 = "abc";
console.log(reg7.test(abc7),abc7.match(reg7));//返回false,abc0返回true,有一个匹配就返回true
// \w:数字字母下划线等同于[0-9a-zA-Z_],\W大写W非数字字母下划线
var reg8 = /\w+/gi;
var abc8 = "abc12";
console.log(reg8.test(abc8),abc8.match(reg8));//任意一个都能被匹配到,没有+,则返回单个元素数组
//\d 表示数字[0-9] \D表示非数字
//\s 匹配空格
//{m,n} 至少匹配m次,至多匹配n次,也可以写{m,},{m}只匹配M次
var reg9 = /go{3,6}gle/gi;
var abc9 = "goooogle";
console.log(reg9.test(abc9),abc9.match(reg9));
// /^ 匹配开始 $/匹配结尾,从头到尾都需要匹配,不然返回false
var regg = /^g.+g$/;
var str1 = "google";//返回false,
// | 或
var regg1 = /google|baidu|yahoo/gi;
var str2 = "www.baidu.com";
// ()将内容作为一个整体作为匹配
var regg2 = /(g.+gle){2,3}/gi;
var str3 = "googlegooglegoogle";//google连续3个才行,
console.log(regg2.test(str3),str3.match(regg2));
console.log(RegExp.$1);//返回匹配项中的google
// $1 $2 $3
var regg3 = /(.*)\s(.*)/gi;
var str4 = "baidu taobao";
console.log(str4.replace(regg3,"$2 $1"));//$1代表baidu,$2代表taobao
//练习 文本限定数字,字母,下划线6-15位字符,不能用数字开始
var uName2 = /^[a-zA-Z_]/;
var uName3 = /\w{5,14}$/;
var aSpan = document.getElementsByTagName("span");
aInput[0].oninput = function(){
if(uName2.test(this.value)){
aSpan[1].innerHTML="";
if(uName3.test(this.value)){
aSpan[1].innerHTML="";
}else{
aSpan[1].innerHTML="用户名必须使用数字,字母与下划线6-15位";
}
}else{
aSpan[1].innerHTML="用户名的开头不能用数字";
}
}
cookie与正则表达式
原文:https://www.cnblogs.com/solaris-wwf/p/11628554.html