正则表达式基础总结

  1. 创建正则表达式有两种方式

    1. 字面量的方式

      let box = 'box';
      let patten = '/box/ig'
      patten.test(box);
      // 匹配则为true否则为false
      
      
    2. new的方式

      let box = 'box';
      New patten = ('box','ig')
      patten.test(box);
      // 匹配则为true否则为false
      
  2. i和g

    i代表不区分大小写进行匹配,g代表全局匹配而不是匹配第一个就停止
    
  3. test和exct

    patten.test(box);
    patten.exct(box);
    用test匹配与否所得结果是true和false;exct匹配与否所得的结果是一个数组
    
  4. 字符串对象提供的四种方法

    match // 返回pattern中的子串或null
    replace(pattern,replacement) // 用replacement替换pattern
    search(pattern) // 返回字符串中pattern开始的位置
    split(pattern) // 返回字符串按指定pattern拆分的数组
    
    1. match

      
      
      let pattern = /Box/ig
      let str = 'this is a box!that is a box!'
      str.match(patern)
      // 返回[box,box];
      
    2. search

      let pattern = /Box/ig
      let str = 'this is a box!that is a box!'
      str. search(patern)
      // 由于search返回的是第一个匹配的位置,所以设置全局是没有用也没有必要的
      // 若有匹配返回匹配的位置,若没有匹配则返回-1
      
    3. replace

      let pattern = /Box/ig
      let str = 'this is a box!that is a box!'
      str. replace(patern,Tom)
      //结果是'this is a Tom!that is a Tom!'
      
    4. split

      let pattern = /!/ig
      let str = 'this is a box!that is a box'
      str. split(patern,Tom)
      //结果是[this is a Tom,that is a Tom] 
      此方法其实和字符串的join基本相同
      
  5. 静态属性和示例属性

    1. 静态属性
    input短名$_  当前被匹配的字符串
    input短名$& 最后一个匹配字符串 
    lastParen短名$+ 最后一对圆括号内的匹配子串
    leftContext短名$`  最后一次匹配前的子串
    multiline短名$* 用于指定是否所有的表达式都用于多行的布尔值
    rightContext短名$` 在上次匹配之后的子串
    
    
    

你可能感兴趣的:(正则表达式基础总结)