5

正则学习总结

修饰符

  • g全文搜索
  • i忽略大小写
  • m多行搜索

元字符

原意文本字符是指123等, 元字符 是在正则表达式中有特殊含义的非字母字符

* + > & $ . | \ ( ) { } [ ]

  • \t 水平制表符
  • \v 垂直制表符
  • \n换行符

字符类

符合某些特性的对象,一个泛指,而不是特指某个字符 可以使用元字符[]构建一个简单的类

例子:

表达式[abc] 把字符a或b或c归为一类,表达式可以匹配这类的字符, 若要匹配ab整体那就不用[]

'a1b2c3d4'.replace(/[abc]/g, 'x') -> 'x1x2x3d4'

并不是匹配abc一个整体

字符类取反

例子:

使用元字符 ^在中括号[]创建反向类/负向类 ,另一个意思是以xxx开始

表达式1 把字符以外(不是字符a或b或c的内容)的进行替换 中括号里面加 ^

'a1b2c3d4'.replace(/[abc]/g, 'x') -> 'axbxcxxx'

范围类

[0123456789]匹配数字 太累了

使用[a-z]连接两个字符表示从a-z的任意字符 闭区间

-并不是特殊字符 若要匹配2017-03中的- 只需[0-9-]

预定义类及边界

图片描述
图片描述

量词

图片描述

正则贪婪模式

d{3,6} 12345678 => x78

正则表达式在处理的时候会尽可能多的匹配,直到匹配失败,默认是贪婪模式

正则非贪婪模式

尽可能少的匹配,一旦成功匹配,不再继续尝试
做法很简单,在量词后加上?即可
d{3,6}? 12345678 => xx78

分组

解决匹配整体的问题

图片描述
使用()达到分组的功能,使量词作用于分组
(byron){3}

使用|可以达到或的效果,加了分组可以改变边界
图片描述

反向引用

出现是变量,不是常量的概念替换, 利用$1 $2捕获分组代表
图片描述

忽略分组

不希望捕获某些分组,只需要在分组内加上?:即可
图片描述

前瞻

图片描述
前瞻概念2
图片描述

对象属性

reg.objKey
图片描述
当正则多次执行test方法的时候,匹配的结果会记忆上次匹配的位置,再循环到0重新开始 也就是lastIndex
简单解决方法是 正则不加g标志 本身也就是为了看下有没有

正则方法

  • test
  • exec

字符串对象方法

  • search
    图片描述
  • match
    图片描述

图片描述
图片描述
图片描述

  • split
    图片描述
  • replace
    图片描述

图片描述


  1. abc

瑞雪
307 声望19 粉丝

极验验证前端愉快开发中~


引用和评论

0 条评论