正则表达式的模式匹配

模式:规则
匹配:作比较 / 查找

正则表达式都是操作字符串的

什么是正则表达式

  1. 普通字符(例如26个英文字母,数字等)
  2. 特殊字符(有特殊含义的,例如\ . 等)

第一次接触

image.png

创建正则表达式

  1. 字面量或者直接量来创建
  2. 通过构造函数创建

正则表达式的模式修饰符

  1. i ignoreCase — 表示忽略大小写
  2. g global — 表示全局匹配
  3. m multiline — 表示对行匹配

正则表达式 — 开源中国测试工具

项目:正则表达式测试工具
image.png
语雀内容

常用的正则表达式

1. QQ号的正则表达式验证

image.png

2. 昵称

image.png

3. 密码

image.png

4. 去除字符串首位的空白字符

image.png

image.png

封装成函数

image.png

5. 转驼峰

image.png

image.png

6.匹配HTML标签

image.png

image.png

7.姓名

image.png

8.身份证

image.png

9.邮箱

image.png

10.电话号码

image.png

正则表达式得总结:

1、查找特定字符串:exec() test() match() search()
2、替换文本:replace
3、数据有效性验证 QQ html标签 昵称 密码
4、创建正则表达式有2种方式:
(1) 字面量方式 /js/igm
(2) 构造函数方式 new RegExp(‘js’,’igm’); — new RegExp(变量,’igm’);
5、模式修饰符:g — 全局匹配
(1) Exec
(2) Match
(3) Replace
(4) Test search split:加不加g全局搜索都没有区别
6、M — 多行匹配
(1) 1.js 2.js 3.js — 全局匹配 — 匹配定位使用^$
7、转义字符
(1) \n 换行符
(2) \t 制表符
(3) \xnn 十六进制
(4) \uxxxx unicode 汉字 \u4e00 -\u9fa5
8、[…] 和 [^…] 任意一个字符
9、. 除换行符之外得任意一个字符
10、\w \W [a-z][A-Z] 任意字母和数字以及下划线组成的字符
11、\d \D [0-9][^0-9] 任意一个数字和不是数字
12、\s \S 任意Unicode空白符 (空格 tab键位 制表符 换行符)
13、重复(量词) — {n,m} — n <=x<=m
(1) ? {0,1} 有可能一次 最多匹配一次
(2) + {1,} 至少大于等于1 最少是一个 往多了去匹配
(3) {0,} 有可能匹配有可能没有
14、非贪婪模式
(1) {n,m}?
(2) {n,}?
(3) {n}?
(4) ??
(5) +?
(6)
? 非贪婪模式后面加上问号
15、选择和分组和引用
(1) | 或
(2) (…) 括号分组
(3) (?:….) 表示非捕获状态
(4) \n(n:1/2/3) 表示第几个分组 类似复制粘贴
16、捕获到的内容
1.exec返回得数组
2./\1/ \1==> 表示第一个分组
3.Replace/RegExp $1
17、指定匹配位置
(1) ^ 以什么什么为开头
(2) $ 以什么什么为结尾
(3) \b 单词边缘的检测
(4) (?=p)前瞻性 (?!p)负向前瞻性
(5) 前瞻性(?=以后面填写的内容来寻找 跟着所天的内容就会被找到 如果没有跟着就会返回null)
(6) 负向前瞻性(?!以后面填写的内容来寻找 只要不是跟着填写的内容就会被找到)
18、Test — exec — toString() — toLocaleString() — valueOf()
19、实例属性 — global ignoreCase multiline source lastIndex
20、RegExp构造函数属性 — input lastMatch lastParen leftContext rightContext
21、String对象和正则表达式相关得方法— search match split replace