1.什么是cookie?在js中表示浏览器文档中的一个数据字段,他的值是一段字符串,存储在浏览器中
2.cookie有什么用?当用户访问网站时,cookie用来记录用户的重要信息,再次访问网站时,通过cookie识别用户的信息,实现自动登录、用户提醒、收藏、收缩历史等功能
3.cookie和webStorage的区别?
(1),cookie数据量小,整个域名内最多存储限制为 4KB
webStorage数据量大, 整个域名内最多存储限制为 5MB
(2),cookie不仅仅存在于浏览器本地, 它可以随请求发给服务器,由服务器读取和修改
webStorage只能存储在浏览器本地,服务器无法读取和修改
(3),cookie是传统的前端技术,很早就用了, html5新增了webStorage功能
(4),cookie是document的属性, 而webStorage是window的属性
4.cookie的用法
cookie虽然是一个字符串,但字符串中是键值对结构
document.cookie = 'name = 张三'
cookie值是键值对结构,赋值的新键值对不会覆盖老键值对,会同时存在
document.cookie = ‘age = 20’ (如果键是唯一,赋值已有的键会把对用值更新 age = 30)
如果数据没有设置键,默认键为空,
document.cookie = ‘李四’
document.cookie = ‘王五’ 所以如果打印 李四会被王五覆盖,输出王五
cookie默认是会话存储,和sessionStorage相似,窗口关闭则清理
我们可以给cookie添加数据,设置cookie的有效期,和localStorage相似,在过期之前,cookie不会过期的时间点,用expires到达这个时间点,cookie会被自动清理
document.cookie = "sex=男;expires=Date Thu Mar 10 2022 09:58:08 GMT+0800"
直接在当前时间上修改的
例子: 设置一个有效期为1小时的cookie值
var now = new Date()
now.setHours(now.getHours() + 1)
document.cookie = "sex=男;expires="+now
也可以使用max-age设置cookie有效时常,默认单位秒,支持计算
document.cookie = "phone=110;max-age=60*60"
如果需要从本地cookie中取出年龄age值
var arr = document.cookie.split(';')
var str = arr.find(function(item){
//startsWith 判断字符串是否以某一段字符开头
return item.startsWith('age=')
})
/\d/-----匹配一个数字
/\d+/------匹配至少连续一个数字
正则后面加g,表示全局匹配,可以得到所有符合规则的结果
/\d/g--------匹配每一个数字
/\d+/g---------匹配字符串中每个连续的数字
正则表达式是区分大小写的,添加 i 可以不区分大小写
/^a+/i--------匹配以子母a开头的连续字母a
/^a[a-z]+/i-------匹配以字母a开头的连续的任意字母
(g和i可以一起用的)
new RegExp(/red|blue|green/, "gi")// new创建时gi可写入参数2
/red|blue|green/gi--------找到所有大小写字母x和y和z
/^1[3-9]\d{9}$/----------手机号正则等