1. 正则的概念
- 正则表达式就是专门为了校验数据而产生的一个语法
- 除了可以校验数据,还可以提取一些想要的固定模式数据
- 还可以替换数据 - 替换字符串
- 正则表达式就是一个模式,可以用来校验、提取、替换数据
2. 正则的创建
(1) 字面量形式创建
var reg = /规则/;
(2)构造函数形式创建
var reg = new RegExp("规则");
(3)省略new
var reg = RegExp("规则");
3. 正则对象的API
(1)test - 验证
正则表达式.test(字符串)
//匹配返回true,否则返回false
(2)exec - 提取
正则表达式.exec(字符串)
//返回数组,就是将字符串中满足正则规则的部分提取出来
4. 支持正则的字符串API
(1)search - 验证
字符串.search(正则表达式)
//如果找到就返回下标,找不到就返回-1
(2)match - 提取
字符串.match(正则表达式)
//返回数组,从字符串中提取满足正则规则的
(3) split - 分割
字符串.split(正则表达式)
//按照正则的规则进行切割
(4)replace - 替换
字符串.replace(正则表达式,新内容)
5. 元字符
1. \d 任意一个数字
2. \D 任意一个非数字
3. \w 任意一个数字、字母、下划线
4. \W 任意一个非数字、字母、下划线
5. \s 任意一个空格
6. \S 任意一个非空格
7. . 任意一个字符
6. 量词
1. {n} 这个字符要n个
2. {n,m} 至少n位,最多m位
3. {n, } 至少n位,少于n位就匹配不到,大于n位都可以
4. + 至少1位,再多不限
5. ? 最多1个,可有可无
6. * 所有位都可以,可以有任意位,也可有可无
7. 特殊字符
1. [ ] 字符串用中括号括起来,表示匹配其中的任一字符,相当于或的意思
2. [^] 匹配除中括号以内的内容(只要存在非的字符即可)
3. 首尾的修饰符
^ 开头的修饰符
$ 结尾的修饰符
4. \ 转义符 (在字符前面加反斜杠(反斜杠只修饰一个字符)例如\.)
5. | 或者(跟js中的 || 一样)
eg:(ab)|(cd)匹配`ab`或者`cd`
eg:(a|b)cd 匹配`acd`或者`bcd`
6. ( ) 从两个直接量中选择一个,分组
eg:gr(a|e)y匹配gray和grey
7. [0-9] 匹配0-9任意一个
8. [a-z] 匹配a-z任意一个
9. [A-Z] 匹配A-Z任意一个
10. [\u4e00-\u9fa5] 匹配汉字
8. 模式修饰符
1. i 忽略大小写
2. g 全局匹配,贪婪模式
3. ig 全局匹配+忽略大小写
字面量书写:/规则/i
new书写:new RegExp('规则','i')