## 一、创建正则表达式
### 模式修饰符
* i 忽略大小写
* g 全局,只要能匹配到的地方,都匹配
* m 多行匹配
~~~
//第一种方式
var box=new RegExp('abcd','gi');
//第二种方式
var box=/abcd/gi;
~~~
### 测试正则表达式的2种方法:
#### test()方法 ,字符串中是否包含pattern,返回真假
~~~
var pattern=/box/gi;
var str="box is a box";
alert(pattern.test(str));
~~~
#### exec();方法返回匹配数组,没有返回null
~~~
var pattern=/box/g;
var str="box is a box";
alert(pattern.exec(str));
~~~
### string提供的4种方法,可以用在正则表达式
* match(pattern); //返回匹配的数组或null
* replace(pattern,new); //参数:替换前后的内容,返回新的字符串
* search(pattern); 返回pattern开始的位置,查到即返回,无需全局
* split(pattern); //返回拆分后的数组
## 二、获取控制
![](https://box.kancloud.cn/a6b40550a35f52949d8c052436c164ea_703x277.png)
![](https://box.kancloud.cn/832fe1ecbf1a53cc832b34bf4f764e18_713x653.png)
![](https://box.kancloud.cn/391cdfd250098738b829b49c7a6ea9b6_687x485.png)
![](https://box.kancloud.cn/36d6a2aeff7b1591fef71a791e0aebde_681x96.png)
![](https://box.kancloud.cn/83238949390791339a7eeb418d225e86_686x234.png)
~~~
//一个点匹配一个字符
var pattern=/g..gle/gi;
str = this is a google page!
str.match(pattern);
~~~
说明1:
~~~
/^0-9a-z/ //非0-9,非a-z
/^[0-9]/ //行首0-9
~~~
说明2:
~~~
pattern.test(str); //不管何种方式。必须先运行一次
RegExp.$1; //获取pattern中的第一个分组的内容
~~~
~~~
var pattern=/8(.*)8/;
var str="this is a 8google8";
document.write(str.replace(pattern,'<strong>$1</strong>'));
~~~
交换2个分组的位置
~~~
var pattern=/(.*)\s(.*)/;
var str="baidu google";
document.write(str.replace(pattern,'<strong>$2 $1</strong>'));
~~~