正则

201 阅读2分钟
  • 正则:是一种处理 字符串 的规则;
  • JS中的正则,具体体现出来是一种数据类型:RegExp
  • JS编写正则的两种方式:
    • var reg = /q/ //一般都是使用字面量的方式
    • var reg = new RegExp(q) //一般涉及到变量的时候才会使用这种方式
  • 正则一般有两种用途:
    • 用于匹配(text):编写一个正则,看对应的字符串是否符合该正则
    • 用于捕获(exec):编写一个正则,可以把对应的字符串中的符合规则的部分获取到
    • var reg = /q/g 双斜杠中级的内容,我们称为正则的元字符,外面的称为修饰符
  • 常用的元字符可以分为:有特殊含义的元字符、量词元字符、普通元字符
  • 有特殊含义的元字符:
    • \ 转义字符:把有特殊意义的字符转为字符本身,不代表任何含义
    • \d 代表0 - 9 之间的数字
    • \D 代表除了0 - 9 的任意字符
    • \w 代表 数字、字母、下划线
    • \W 代表取反↑
    • ^ 代表以 什么字符 开头
    • $ 代表以 什么字符 结尾
    • . 代表除了换行符以外的所有字符
    • \n 代表换行符
    • x|y 代表 x 或者 y
    • [ab] 代表 a或者b
    • [^ab] 代表非ab
    • [a-z] 代表a-z直接的任意符
    • [^a-z] 代表取反↑
    • () 代表 分组和 提升优先级
    • (?:) 代表了只匹配,不捕获
    • (?=) 代表正向肯定预查
    • (?!) 代表正向否定预查
  • 量词元字符:
    • ? 代表出现 0或1次
      •     代表出现1次到多次
        
      •     代表出现0次到多
        
    • {n} 代表出现n次
    • {n,m} 代表出现n到m次
    • {n,} 代表至少出现n次
  • 修饰符
    • i 代表忽略大小写 ignoreCase
    • m 代表多行匹配 mutiline
    • g 代表全局匹配 global