首页 > 其他分享 >day14 正则表达式

day14 正则表达式

时间:2022-10-27 20:12:30浏览次数:60  
标签:console log regx 正则表达式 day14 cookie var match

昨天内容回顾

cookie

为了解决http的无状态问题 (使用cookie来保存对应的seesionID 位于浏览器上)

cookie的特性

  • cookie里面只能存储4kb的数据
  • cookie位于浏览器上
  • cookie会随请求发送 cookie 可以跨域
  • cookie可以设置过期时间(默认过期时间为Session (浏览器关闭就消失))
  • cookie 不安全(可以被篡改和伪造)
  • cookie 存储的数据类型只能字符串(不能存储复杂的字符串)

cookie的访问

  • document.cookie 进行访问

cookie的格式

key=value;expires=日期;path=地址;domain=域名;secure安全

localStorage (本地存储 (存储对应客户端需要重复渲染的数据))

里面包含三个方法

  • setItem 设置元素

  • getItem 通过key来获取对应的元素值

  • removeItem 通过key来移除对应的元素

特性

  • 持久化存储

  • 不会随请求发送

  • 存储在对应浏览器上(也可以篡改和伪造)

  • 存储大小一般为5M

sessinStorage (本地存储 存储对应的服务端发过来的数据登录的用户信息)

里面包含三个方法

  • setItem 设置元素

  • getItem 通过key来获取对应的元素值

  • removeItem 通过key来移除对应的元素

特性

  • 过期时间跟session一致(浏览器关闭会自动清除)

  • 存储在浏览器上(也不会随请求发送)

cookie和localStorage 的区别

  • cookie只有4kb 而 localStorage有5MB

  • cookie会随请求发送 localStorage不会

  • cookie 能存储的数据格式有限 而 localStorage数据格式限制没有cookie严厉

  • cookie的存储地址和localStorage的位置不一致

  • cookie 可以跨域 localStorage 不能

  • cookie 可以设置过期时间 localStorage不能

localStorage和sessionStorage区别

  • localStorage的数据除非手动删除 不然不会消失 而sessionStorage存储的数据浏览器关闭就会自动清除

localStorage和sessionStorage以及cookie的共同的

  • 都是存储在浏览器上

  • 在浏览器上都可以进行相关的编辑(都不安全)

  • 里面存储的数据都是字符串(如果不是字符串他会自动调用toString方法转为字符串)

JSON的序列化和反序列化

序列化 将一个对象转为对应的json格式的字符串

  • JSON.stringify()

反序列化 将json格式的字符串转为对应的对象

  • JSON.parse()

  • window.eval() 不安全 自动解析对应的代码并且执行

正则表达式

概述:

正则表达式是运用于验证一种表达式,他在js中是一个对象,被称为正则对象,对应的正则对象存在对应相关的元字符。我只需要了解相关元字符及对应的可以书写一些简单的正则进行验证就可以了。

正则对象的声明

使用new关键词声明
//使用new关键字 g表示全局  
//第一个参数填写相关正则表达式  添加修饰符(匹配模式) g 表示 全局 i 表示 不区分大小写 m 表示换行
var regx = new RegExp('abc','g')
console.log(regx);

 

使用//来修饰 (常用的)
// 第二种声明
var regx1 = /abc/g
console.log(regx1);

 

正则的匹配模式

  • g 全局匹配

  • i 不区分大小写

  • m 换行

  • s 单个匹配

正则的元字符

^ 开头
// ^ 开头
var regx1 = /^a/ //表示以a开头
//字符串支持正则的四个方法 match 匹配 search 查找 split 分割 replace 替换
console.log('abc'.match(regx1));//['a']
$ 结尾
// $ 结尾
var regx2 = /b$/ //以b结尾
console.log('abc'.match(regx2));//null
[] 表示其中一个元素
//[] 表示其中任意一个元素 
var regx3 = /^[abc]$/ //以abc其中一个开头及结尾 只能匹配a 或 b 或 c
console.log('abc'.match(regx3));//null
console.log('a'.match(regx3));//['a']
var regx3 = /^[abc][12]$/ //以abc中任意一个开头及以12中任意一个结尾 只能匹配 a1 a2 b1 b2 c1 c2
console.log('a12'.match(regx3));//null
var regx3 = /^abc[abc]$/ //以abc开头以abc其中一个结尾 abca abcb abcc
{} 表示个数
  • {n} 表示n个

  • {n,m} 表示n个到m个

  • {n,} 表示n个到无穷个 至少要有n个

//{} 表示个数
// {1,2} 1个到2个
var regx4 = /^[abc]{1,2}$/ //匹配abc中组成的1个或者俩个组合 
//可以匹配 a b c aa ab ac bb bc ba ca cc cb
console.log('abc'.match(regx4));//null
console.log('a'.match(regx4));//['a']
console.log('ab'.match(regx4));//['ab']
//{1,} 一个及以上 至少要1个
var regx4 = /a{1,}/ //匹配一个a 或者是多个a
console.log('a'.match(regx4));//['a']
console.log('aaa'.match(regx4));//['aaa']
//{2} 表示俩个
var regx4 = /^b{2}$/ //表示俩个b
console.log('b'.match(regx4)); //null
console.log('bb'.match(regx4)); //['bb']
() 分组
var regx5 = /^([a][ac]){2}$/ //能匹配 aaaa acac acaa 
console.log('aaaa'.match(regx5))
console.log('acac'.match(regx5))
console.log('acaa'.match(regx5))
console.log('accc'.match(regx5))//null
+ 表示一个到多个
//+表示 {1,} 一个到多个
var regx6 = /^a+$/ //匹配一个a或者多个a
console.log('a'.match(regx6));//['a']
console.log('aaaa'.match(regx6));['aaaa']
* 表示0个到多个
//*表示{0,} 0个到多个
var regx7 = /^a*b$/ //匹配0个a或者多个a 以b结尾
console.log('b'.match(regx7));//['b']
console.log('ab'.match(regx7));//['a']
console.log('aaaab'.match(regx7));['aaaa']
? 表示0个到一个
//?表示0个到一个 {0,1}
var regx8 = /^a?b$/ //a可以有1个可以没有 以b结尾
console.log('b'.match(regx8));//['b']
console.log('ab'.match(regx8));//['ab']
console.log('aab'.match(regx8));//null
\d 表示数字 相当于[0-9] \D 表示非数字 ![0-9]
// 数字表示形式
var regx9 = /^[0-9]$/ //匹配0-9之间的数字
console.log('1'.match(regx9));//['1']
console.log('0'.match(regx9));//['0']
//第二种数字表示形式 使用\d 表示为数字 [0-9] \D 非数字
var regx9 = /^\d$/
console.log('1'.match(regx9));//['1']
console.log('0'.match(regx9));//['0']
var regx9 = /^\D$/ //非数字
console.log('1'.match(regx9));//null
console.log(' '.match(regx9));//[' ']
\w 表示数字字母下滑线 相当于[0-9A-Za-z] \W表示非数字字母下滑线 ![0-9A-Za-z]
//字母 数字 下滑线 \w 表示数字字母下滑线 \W 非数字字母下滑线
var regx10 = /^[0-9A-Za-z_]$/ //表示数字字母下滑线
console.log('1'.match(regx10));//['1']
console.log('A'.match(regx10));//['A']
console.log('a'.match(regx10));//['a']
console.log('_'.match(regx10));//['_']
console.log('?'.match(regx10));//null
var regx10 = /^\w$/
console.log('1'.match(regx10));//['1']
console.log('A'.match(regx10));//['A']
console.log('a'.match(regx10));//['a']
console.log('_'.match(regx10));//['_']
console.log('?'.match(regx10));//null
var regx10 = /^\W$/
console.log('?'.match(regx10));//['?']
console.log('a'.match(regx10));//null
. 表示所有的
//.表示所有的
var regx11 = /^.$/
console.log('?'.match(regx11));//['?']
console.log(' '.match(regx11));//[' ']
console.log('.'.match(regx11));//['.']
\s 表示空白字符 \S表示非空白字符
//空白字符 \s空白字符 \S非空白字符串 (空格 回车 制表符..)
var regx12 = /^\s$/
console.log('.'.match(regx12));//null
console.log(' '.match(regx12));//[' ']
var regx12 = /^\S$/
console.log('.'.match(regx12));//['.']
console.log(' '.match(regx12));//null

| 或者 表示其中一种

 

var regx = /^([ab]{2})|([12]{3})$/ //表示的是ab其中的内容构成的俩个 或者是123其中的内容构成的一个 任意其中一个
//匹配的内容 aa ab bb ba 或者是 111 121 211 122 112 222 212 221
console.log('121'.match(regx));//['121']
console.log('aa'.match(regx));//['aa']
//忽略掉后面的内容
console.log('aa1'.match(regx));//['aa']
转义 (将本身的意思显示出来去除对应元字符的功能)
  • 将需要转义的内容放到[]里面

  • 使用反斜杠来进行转义

//转义 需要匹配?或者. 
//如果直接使用?和.他会解析为元字符 需要转义 
//第一种直接把他加入中括号里面 (在中括号里面会解析为字符串)
var regx = /^[?.]$/
console.log('?'.match(regx));
console.log('.'.match(regx));
//第二种方式 使用反斜杠\ 来进行转义 转义符合
var regx = /^\?|\.$/
console.log('?'.match(regx));
console.log('.'.match(regx));

关于正则对象的属性及方法

属性
  • lastIndex
console.log(regx.dotAll);//是否在正则表达式中一起使用"s"修饰符
console.log(regx.flags);//模式修饰
console.log(regx.global);//是否全局匹配 g
console.log(regx.ignoreCase);//是否区分大小写 i
console.log(regx.multiline);//是否换行 m
console.log(regx.unicode);//是否进行编码匹配
console.log(regx.source);//表示里面内容
console.log(regx.sticky);//黏性
方法
  • test 测试是否符合当前的正则表达式 (符合返回true 不符合返回false)
  • exec 执行方法 (类似于match 返回一个数组 匹配不成功返回null)
var regx = /^[abc]{2}$/ //匹配ab aa ac bc bb ba ca cb cc
console.log(regx.lastIndex);//返回lastIndex表示最后的下标 他是属于可读可写 默认值为0
//传入需要匹配的字符串 匹配成功返回true 失败返回false
console.log(regx.test('ab'));//true
console.log(regx.test('aaa'));//false
regx.lastIndex = 3 //自动默认更改 设置值为0
console.log(regx.test('ab'));//true
//执行方法 exec
console.log(regx.exec('ab')); //返回一个匹配的数组 类似match方法
console.log(regx.exec('abc')); //匹配不成功返回null

String 支持正则表达式的方法

  • search 搜索 (根据对应的正则返回第一次找的下标 如果没有找到返回-1)
  • match 匹配 (根据对应的正则表达式返回匹配的数组,如果没有匹配的返回null)
  • split 分割 (根据对应正则表达式进行字符串的分割 返回一个数组 如果不能进行分割返回的也是一个数组 (数组里面只有一个元素))
  • replace 替换 (根据对应的正则表达式进行字符串的替换返回一个新的字符串 如果不能完成替换返回原本的字符串)

标签:console,log,regx,正则表达式,day14,cookie,var,match
From: https://www.cnblogs.com/itlulu/p/16833568.html

相关文章

  • js正则表达式
    正则表达式概述:正则表达式是运用于验证一种表达式,他在js中是一个对象,被称为正则对象,对应的正则对象存在对应相关的元字符。我只需要了解相关元字符及对应的可以书写一些......
  • 正则表达式
    一、正则表达式的概述1、概念正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“......
  • 小菜鸡学习---<正则表达式学习笔记2>
    正则表达式学习笔记2一.修饰符前面我们学习的都是用于匹配的基本的关键的一些表达式符号,现在我们来学习修饰符。修饰符不写在正则表达式里,修饰符位于表达式之外,比如/runo......
  • 小菜鸡的学习笔记---<正则表达式(1)>
    正则表达式学习笔记(1)(纯新手学习笔记,大佬绕路QAQ)一.简介正则表达式就是一种文本模式用来匹配一系列满足特定条件的字符串,可以对比一下数学里面的表达式,比如我们要用......
  • VS Code 中 文本替换 的正则表达式引用
     https://learn.microsoft.com/zh-cn/visualstudio/ide/using-regular-expressions-in-visual-studio?view=vs-2022 用例: 实现替换掉引号 后面添加逗号分割......
  • ParameterUtils【java正则表达式】【多测师_王sir】
    importstaticorg.testng.Assert.assertEqualsNoOrder;importjava.util.HashMap;importjava.util.Map;importjava.util.regex.Matcher;importjava.util.regex.Pattern;......
  • python 正则表达式
    简介在一些实际项目中,我们可能会遇到需要匹配对应的数据,例如爬虫时候需要匹配等,这时候就需要使用到正则表达式了正则匹配常用规则固定字符{abc}a/b/c[^abc]取所有......
  • 正则表达式(4)
    原理篇:回溯:https://zhuanlan.zhihu.com/p/274174421.贪婪量词“试”的策略是:买衣服砍价。价钱太高了,便宜点,不行,再便宜点。2.惰性量词“试”的策略是:卖东西加价。给少......
  • Python——正则表达式
    Python——正则表达式前戏'''案例:京东注册手机号校验基本需求:手机号必须是11位、手机号必须以1315开头、必须是纯数字'''phone=input('请输入您的手机号>>>:')......
  • 正则表达式
    正则表达式一、正则表达式正则表达式是一些特殊的符号组合在一起产生一些特殊含义,它能帮助我们方便的检查一个字符串中符合条件的数据值。正则表达式线上测试网址:http:......