正则表达式
  1.定义正则表达式
    reg = /正则表达式/
    1. /.../ 用于定义正则表达式
    2. /.../g 表示全局匹配
    3. /.../i 表示不区分大小写
    4. /.../m 表示多行匹配
    JS正则匹配时本身就支持多行,此处的多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容

1     例子:
2     var pattern = /^java\w*/gm;
3     var text = "java aaa\njava bbb"
这样即使换行了,还是符合匹配要求(以java开头),可以匹配出两个内容,如果没有m就只匹配一个

  2.利用正则表达式
    1.test(string) 检查和字符串中是否和正则表达式匹配
     reg.test(字符串) 匹配就返回true
    2.exec(string) 获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。
     获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。

1 非全局模式(只匹配第一次)
 2 获取匹配结果数组,注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配)
 3 可以对匹配出来的内容进行分组,把匹配的内容提取出来
 4 如:
 5 var pattern = /\bJava\w*\b/;
 6 var text = "JavaScript is more fun than Java or JavaBeans!";
 7 result = pattern.exec(text)————["JavaScript"]
 8 
 9 var pattern = /\bJava(\w*)\b/;
10 var text = "JavaScript is more fun than Java or JavaBeans!";
11 result = pattern.exec(text)——————["JavaScript","Script"]
12 
13 全局模式(匹配所有)
14 需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕
15 var pattern = /\bJava\w*\b/g;
16 var text = "JavaScript is more fun than Java or JavaBeans!";
17 执行一次:result = pattern.exec(text)————————————["JavaScript"]
18 两次:result = pattern.exec(text)————————————["Java"]
19 三次:result = pattern.exec(text)————————————["JavaBeans"]    
20 最后一次:result = pattern.exec(text)————————————["null"]
21 
22 var pattern = /\bJava(\w*)\b/g;
23 var text = "JavaScript is more fun than Java or JavaBeans!";
24 result = pattern.exec(text)

  3.字符串中相关的方法

1 1.obj.search(正则表达式) 
 2 获取索引位置,搜索整个字符串,返回匹配成功的第一个位置(g模式无效)
 3 
 4 2.obj.match(正则表达式) 
 5 获取匹配内容,搜索整个字符串,获取找到第一个匹配内容,如果正则是g模式找到全部
 6 
 7 3.obj.replace(正则表达式,替换的内容) 通过正则表达式找到内容,然后把找到的内容变成替换的内容。
 8 替换匹配替换,正则中有g则替换所有,否则只替换第一个匹配项,
 9 $数字:匹配的第n个组内容;
10 $& :当前匹配的内容 obj.replace (正则表达式,替换的内容$&) 把匹配的内容和替换的内容结合
11 $` :位于匹配子串左侧的文本
12 $' :位于匹配子串右侧的文本
13 $$ :直接量$符号 想要输入$ 要有两个$($$)