课程介绍:
1、正则表达式的模式匹配
2、模式:规则
3、匹配:作比较 — 字符串
4、通俗的话:正则表达式都是操作字符串的;
课程主打;
1、简单了解正则表达式
2、深入讲解如何使用
3、常用的正则表达式
什么是正则表达式: — 由以下两种字符组成的文字模式
1、普通字符(例如26个英文字母 数字)
2、特殊字符(有特殊含义 例如\ . /)
3、可以作为一个模板,将某个字符和所搜索的字符串进行匹配
使用正则表达式;
1、查找
2、替换
3、进行数据有效性验证
如何创建正则表达式? — 2种
1、字面量或者直接量创建
2、构造函数方式创建
3、类似之前的知识:
(1) [] {}
(2) New Array() new Object()
正则表达式匹配由2个方法:
1、test() 表示测试的意思 — 布尔值
2、Exec() 表示执行 — 数组
正则表达式种的模式修饰符 — 模式修饰符是写在外面的
1、i ignoreCase 表示忽略大小写
2、g global 表示全局匹配的意思
3、m multiline 表示行匹配
开源中国提供的正则表达式测试工具
https://tool.oschina.net/regex
编写正则表达式测试工具首页;
Html+css+JavaScript;
分析:
1、当我们点击测试匹配的按钮的时候,我们应该获取到待匹配的文本值,获得这个正则表达式,然后通过获得的这个正则表达式的字符串来生成我们的正则模式,再用这个模式去匹配文本
2、匹配结果输出到结果文本域中
3、先忽略三个复选框 — 模式修饰符
4、综上: — 所有的一切都发生测试匹配按钮身上;
5、阶段总结:
6、简单的了解了正则表达式
7、正则表达式测试工具
正则表达式的深入理解;
1、转义字符
2、特殊字符
3、重复
4、贪婪模式
5、非贪婪模式
6、以上案例看演示代码;
正则表达式的选择,分组和引用
定位匹配; ^ $
位置匹配之单词边界匹配
前瞻性匹配和负向前瞻性匹配
下面学习RegExp对象;
原理:
前三个找到正常输出,再往下找输出null
再继续找的话,将整个查找的lastindex重置为0;
所以会重头开始继续查找 —— exec方法的执行原理
除了test exec方法之外 还有一些继承过来的方法
案例演示:String和正则表达式相关的方法 —- search match split
常用得正则表达式;
1、qq号 昵称 密码
- 昵称
- 密码
4.去除字符串首尾的空白字符
封装成函数
5.转驼峰
6.匹配HTML标签
正则表达式得总结:
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:没区别
6、M — 多行匹配
(1) 1.js 2.js 3.js — 全局匹配 — 使用^$
7、转义字符
(1) \n 换行符
(2) \t 制表符
(3) \xnn 十六进制
(4) \uxxxx unicode
8、[…] 和 [^…]
9、. 除换行符之外得任意一个字符
10、\w \W
11、\d \D
12、\s \S
13、重复(量词) — {n,m} — n <=x<=m
(1) ?
(2) +
(3)
14、非贪婪模式
(1) {n,m}?
(2) ?
15、选择和分组和引用
(1) |
(2) (…)
(3) (?:….)
(4) \n(n:1/2/3)
16、exec返回得数组
17、/\1/
18、Replace/RegExp $1
19、指定匹配位置
(1) ^
(2) $
(3) \b
(4) (?=p) (?!p)
20、Test — exec — toString() — toLocaleString() — valueOf()
21、实例属性 — global ignoreCase multiline source lastIndex
22、RegExp构造函数属性 — input lastMatch lastParen leftContext rightContext
23、String对象和正则表达式相关得方法 — search match split replace
正则表达式方法汇总
https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp