正则表达式的模式匹配
模式:规则
匹配:作比较 / 查找
正则表达式都是操作字符串的
什么是正则表达式
- 普通字符(例如26个英文字母,数字等)
- 特殊字符(有特殊含义的,例如\ . 等)
第一次接触
创建正则表达式
- 字面量或者直接量来创建
- 通过构造函数创建
正则表达式的模式修饰符
- i ignoreCase — 表示忽略大小写
- g global — 表示全局匹配
- m multiline — 表示对行匹配
项目:正则表达式测试工具
语雀内容
常用的正则表达式
1. QQ号的正则表达式验证
2. 昵称
3. 密码
4. 去除字符串首位的空白字符
封装成函数
5. 转驼峰
6.匹配HTML标签
7.姓名
8.身份证
9.邮箱
10.电话号码
正则表达式得总结:
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