正则和字符串

1.var reg=/./   var reg=/\./

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

2.?的使用

如果单独的一个字符后面带? var reg=/\d?/ /n?/

代表一个或0个这个字符的出现

如果是量词+和*,{2,}后面带? 取消正则的贪婪性  在捕获阶段

 

3.捕获

1.普通捕获 exec() match()

普通捕获有懒惰性,给正则添加一个修饰符g可以解决,match是将所有捕获的内容放在一个数组中并返回。Match就是对exec的一个简单封装。

2.分组捕获 捕获的方法还是exec 和match

正则在结构上发生了变化,加()

Var reg=/(a)(b)/

Exec()和match()在非全局下分组捕获是相同的,在捕获的过程中即捕获大正则里的内容也捕获分组中的内容并都返回。

 

Exec()和match()在全局下的分组捕获是不一样的,exec()不变。但是match()只捕获大正则里的内容

 

  1. 分组捕获的优势
  2. 可以提升优先级
  3. 可以捕获引用

\1代表分组1里面的内容  \2代表分组2里面的内容

前提是分组必须在引用之前,如果\2在分组的前面代表普通的表达式???

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

\1 和RegExp.$1 二者都是分组引用

\1只能使用在正则表达式里面,RegExp.$1 可以外面使用。都是在捕获完成的条件下。

  1. 在捕获的过程中怎样取消捕获分组中的内

在分组的前面加上?:就ok了

?:和?=的区别

?:取消捕获分组中的内容的

?=  a(?=s)

 

4.replace细说

Replace是字符串的一个方法,他有两个参数,用后者将前者替换掉,并返回一个新的字符串,但是没有改变原来的字符串.

  1. 如果第一个参数是字符串,只改变一次
  2. 如果第一个参数是正则,捕获一次改变一次
  3. 如果第二个参数是匿名函数,每捕获一次这个匿名函数会执行一次,return的是什么,那就替换成什么。这个匿名函数的arguments有三个元素。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.正则

用来处理字符串的一个规则。除了处理字符串别的啥也干不了

  1. 用来判断一个字符串是否符合这个规则 test()  正则的匹配
  2. 正则还可以把符合正则的内容捕获到 exec()    正则的捕获

如何创建正则  对象数据类型   创建方式 两种

一个是字面量的方式 

Var reg=/\d/

一个是实例方式

Var reg=new RegExp(“string”)

Var obj={}  var obj=new Object()   没有区别  但是正则的这两种创建方式有点区别

如何学习正则

  1. 一是匹配 2是捕获

Console.dir(RegExp.prototype)

 

 

Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-12-21 10:21  css水  阅读(292)  评论(0编辑  收藏  举报