创建正则对象的二种方式
2.如何创建正规表达式
================
**知识点**
1. 正则构造函数
2. 正则表达式字面量
3. 正则对象上的常用方法
---------------------------------------------------
1.正则构造函数
------------
- RegExp(pattern, modifiers)
+ pattern(模式): 描述了表达式的模式
+ modifiers(修饰符): 用于指定全局/区分大小写/多行匹配
- 因为参数都是字符串,所以要对反斜线`\`,进行转义处理,前面再添加一个`\`即可
```javascript
var reg = new RegExp('\d+');
'1,2,3'.replace(reg, 'a'); // 'a,2,3'
// g: 表示全局匹配, 不会匹配到第一个就停止
var reg = new RegExp('\d+', 'g');
'1,2,3'.replace(reg, 'a'); // 'a,a,a'
```
---------------------------------------------------
2.正则表达式字面量
---------------
- 与字义字符串字面量类似,正则表达式字面理也需要使用定界符
- 正则表达式字面量使用:`/`正斜线做为定界符
- 上面的案例可以用字面量进行改写:
```javascript
var reg = /\d+/;
'1,2,3'.replace(reg, 'a'); // "a,2,3"
var reg = /\d+/g
'1,2,3'.replace(reg, 'a'); // "a,a,a"
```
> 显然字面量的表达式能力更直观,方便,也是推荐的方式
---------------------------------------------------
3.正则对象上的常用方法
------------------
- `reg.test(string)`: 检测字符串是否匹配某个正则模式
- `reg.exec()`: 返回由匹配的内容和索引等组成的数组,如果仅获取值,可追加`toString()`方法
- `reg.toString()`: 返回正则表达式的字符串表示,通常用在正则构造函数(RegExp())的参数中