美文网首页
JavaScript_ cookie及正则

JavaScript_ cookie及正则

作者: webGai | 来源:发表于2022-08-10 08:23 被阅读0次

一、 cookie

(一)http与https

http,https 都是网络传输协议 是用于网络相关传输,http走的是明文传输,https走的密文传输(内部采用对称加密以及非对称加密)。对应的https安全性要高于http。https为什么会采用加密,因为他底层采用了openSSL。(open表示开源)

a. http的特性

  • 无状态 (服务器不知道是谁访问的我)
  • 无连接 (不会建立完整的连接 访问一过去 数据一返回连接就断了)
  • 长连接 (连接可以建立长时间)
  • 短连接(连接对应的内容很短)

b. 问题

由于http是无状态的!那么对应的我们在实现某些功能的时候就会出现对应的问题.比如a用户登录了 b用户也登录了,a用户可能拿到b用户的页面,b用户可以拿到a用户的页面。这个时候我们就出现问题了。

c .问题的解决

根据上面的问题我们可以得出对应的a可能会拿到b的内容,原因是因为对应的服务器无法区分a和b,如果我在a的访问的时候给一个唯一的标识,在b的访问的时候给一个唯一的标识,那么我是否可以区分a和b。

所以对应的解决方案就是a和b拥有不一样的标识,而这个标识是在建立连接的时候。这个标识叫做sessionId。也就意味这个每个请求去建立连接都会获得一个sessionId。(sessionID服务端给的)。如果对应的sessionID是存储于服务端的话,那么服务端就会越来越大从影响对应的效率,

所以我们诞生了一个内容来保存这个值到对应浏览器端,这个东西就是cookie。所以cookie的诞生就是为了保存sessionID,从而解决http无状态的问题。
——小钢老师

(二)cookie基本概述

a. 概述

  • cookie存在于浏览器端
  • cookie为了保存sessionID出现的
  • cookie的出现解决了http无状态的问题

b. 特性

  • cookie是不安全的
  • cookie是可以被篡改和伪造的
  • cookie他是以字符串存储的(单一),有很多的数据类型是不支持的(二进制图片,二进制的视频,
  • base64码的视频等等)
  • cookie他的大小不能超过4kb(大小只有4kb 容量小)
  • cookie会随请求发送
  • cookie可以跨域(domain来设置)

c. cookie完整格式

name=value;[expires=date];[path=路径];[domain=域名];[secure]

d. 相关操作

Cookies.remove('username')  // 删除
Cookies.get('username')     // 取值
Cookies.set('username','jack',{expires:10})     //设置一个username 10天以后过期

e. 转码与解码

1) encodeURIComponent 转码(base64码)

console.log(encodeURIComponent('{abdejde152}'));

2) decodeURIComponent 解码

var str = encodeURIComponent('{abdejde152}') //进行编码
console.log(decodeURIComponent(str));//解码

(三)localStorage(本地存储)

a. 和cookie的区别

  • cookie的大小只有4kb 对应的localstorage有5M
  • cookie会随请求发送 localstorage不会随请求发送
  • cookie只能存储字符串 localstorage可以存储对应的图片以及视频的二进制
  • 存储的位置不一样的
  • cookie是可以过期的 localstorage不能过期

b. 共同点

  • cookie和localstorage都是存储在浏览器上
  • 存储的内容的形式都是以字符串形式

c. 设置

localStorage.setItem("key",'value')

d. 取值

localStorage.getItem("key",'value')

二、正则

(一)模式修饰

  • g 全局搜索
  • i 不区分大小写
  • m 换行模式

(二)元字符

[] 表示里面任意的一个元素
^ 表示开头
$ 表示结尾
{} 表示个数
var regx2 = /[a-z]{6}/ //表示6个小写的字母

regx2 = /[a-z]{0}/ //表示0个字母

regx2 = /[a-z]{1,3}/ //表示1个到3个

regx2 = /[a-z]{1,}/ //表示1个到无穷个
{n} 表示n个
{n,m} 表示n个到m个
{n,} 表示n个到无穷个

*表示0个到多个 {0,}

+表示一个到多个 {1,}

? 表示0个到一个 {0,1}

. 表示所有的内容(包括中文字符)

\w 表示对应的字母数字下滑线 \W 就是相反的 不是字母数字下滑线
\d 表示数字 \D表示非数字
\s 表示空白字符串(回车 制表 空格) \S就是相反的 不是空白字符
() 分组
| 或者
转义 \
//匹配 ? * + .等元字符 转义\
var regx10 = /^[?]$/
console.log('?'.match(regx10));

var regx10 = /^[*]$/
console.log('*'.match(regx10));

//用转义字符来
var regx10 = /^*$/
console.log('*'.match(regx10));

var regx10 = /^.$/
console.log('.'.match(regx10));

正则的检测方法

test 测试 返回一个boolean类型值(是否匹配)
var regx = /\w/
console.log(regx.test('abc')) //true
exec 执行 返回给你一个对应的匹配的数组(如果有就返回一个数组)
var regx = /\d/
console.log(regx.exec('123')) //[1,2,3]

字符串支持正则的4个方法

  • replace 替换
  • search 查找
  • macth 匹配
  • solit 切割

相关文章

网友评论

      本文标题:JavaScript_ cookie及正则

      本文链接:https://www.haomeiwen.com/subject/twyzwrtx.html