js 正则and replace讲解

  1.var reg=/./ 与 var reg=/./的区别?

    .代表任意一个字符

    .而后者代表这个字符串中得有一个.

  2.?的使用

    如果单独的一个字符后面带?

    /d?/  代表1个或0个这个字符的出现    (在捕获的阶段)

    如果是量词+后面带? 代表取消贪婪性  (在捕获的阶段)

  3.捕获 (在全局捕获中,exec()多次输出后,他的起始位置不断地向后匹配,如果匹配不到就是null)

    1.普通捕获  exec()    match()(对exec()的包装)

      普通捕获有懒惰性,给正则添加一个修饰符g可以解决;

    match()是将所有捕获的内容放在一个数组中并返回,match()就是对exec()对函数的简单封装

    2.分组捕获:

      分组捕获;还是用到了exec()和match()的方法,只不过正则的结构发生了变化,加()

      分两种情况:(全局,非全局)

      非全局:exec()和match()在非全局下分组捕获相同,分组捕获在捕获的过程中,既捕获大正则的内容,也捕获分组中的内容,并返回;

      全局:exec()和match()在非全局下分组捕获不同,exec()不变,但是match只捕获到大正则里面的内容;

    3.分组捕获的优势:

      1.可以提升优先级;

      2.可以捕获引用;

    捕获引用:  1    2转义字符;

       1代表分组1里面一模一样的内容;

       2代表分组2里面一模一样的内容;

    分组的结果存在正则RegExp的$number属性下,

    

原文地址:https://www.cnblogs.com/diwangkaige/p/10152032.html