# 正则表达式的使用
```js
正则表达式匹配方式有一定的局限性:
不能够做字符串的操作
```
# 一,两个匹配方法
exec
```js
正则表达式 . exec(字符串);
只能匹配一个,返回值是一个伪数组
0 是匹配到的值,index 是匹配到的首字母下标;
(不常用,使用概率0.01%)
```
test
```js
正则表达式 . test(字符串);
作用是:
字符串内有没有匹配上的,
如果没有返回false
如果有 返回true
这个方法也是,最常用的正则表达式方法
(使用概率99.99%)
```
# 二,字符串的match方法
```js
字符串.match(表达式)
作用:
match()
表达式一共有多少个满足的条件,
返回新数组,数组的长度,是有多少个满足的条件
如果没有满足的条件,则返回null
// 一定要写真数组,后面加g为真数组,不加就是伪数组
```
# 三,字符串的search( 表达式 )
```js
字符串.search(表达式);
作用:
只会返回满足条件的第一个首字符的字符下标;
如果没有满足的值,则会返回-1;
// 和indexOF是不同的,indexof是直接找的但是不可以用表达式,用了就是-1
```
# 四, 正则表达式元字符
```js
元字符 描述
- . 查找单个字符,除了换行和行结束符。
- \w 查找单词字符。
- \W 查找非单词字符。
- \d 查找数字。
- \D 查找非数字字符。
- \s 查找空白字符。
- \S 查找非空白字符。
- \b 匹配单词边界。
- \B 匹配非单词边界。 //最后俩非常不常用
```
# 五,正则表达式组合使用
```js
表达式 描述
- [abc] 查找方括号之间的任何字符。
- [^abc] 查找任何不在方括号之间的字符。
- [0-9] 查找任何从 0 至 9 的数字。
- [a-z] 查找任何从小写 a 到小写 z 的字符。
- [A-Z] 查找任何从大写 A 到大写 Z 的字符。
- [A-z] 查找任何从大写 A 到小写 z 的字符。
- [adgk] 查找给定集合内的任何字符。
- [^adgk] 查找给定集合外的任何字符。
- (red|blue|green) 查找任何指定的选项。
```
# 六,正则表达式量词
```js
量词 描述
- n+ 匹配任何包含至少一个 n 的字符串。
- n* 匹配任何包含零个或多个 n 的字符串。
- n? 匹配任何包含零个或一个 n 的字符串。
- n{X} 匹配包含 X 个 n 的序列的字符串。
- n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串。
- n{X,} 匹配包含至少 X 个 n 的序列的字符串。
- n$ 匹配任何结尾为 n 的字符串。
- ^n 匹配任何开头为 n 的字符串。
- ?=n 匹配任何其后紧接指定字符串 n 的字符串。
- ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
```