正则

92 阅读1分钟
  1. 匹配 test:语法 正则.test(字符串)
    • 元字符
      \d  表示一位数字
      \D 表示一位非数字
      \w 表示数字字母下划线其中一个
      \W 表示除了\w 其他的字符
      \s 表示一位空字符
      \S 表示一位非空白字符
      . 表示一位非换行的任意字符
      \ 表示转义符
      ^ 表示开头
      $ 表示结束
      * 表示0-正无穷
      + 表示1-正无穷
      ? 表示0-1次
      {n} 表示限定n次
      {n,}表示最少n次
      {n,m} 表示n到m次
      () 当成一个整体 单独捕获
      | 或字符 左右两边都可以
      [] 包含 包含其中一个就可以
      [^] 不包含里面的任何一个
      - 到
      i 忽略大小写
      g 全局,可以多次捕获
      
  2. 捕获 exec 语法: 正则.exec(字符串)
    • 没有捕获到,直接返回null
    • 捕获到了,没有小括号也没有g,永远捕获下标0开始第一个满足条件的
    • 有g 捕获第一次后,会从捕获的地方开始重新捕获
    • 当所有匹配完了后,再次捕获返回null
    • 有小括号,下标0 还是我们正常捕获到的内容,从下标1开始,就是每个小括号捕获到的内容
  3. 正则的两大特性
    • 懒惰。正常捕获字符串的时候,每次都从下标0开始 ,解决方式,给正则添加一个修饰符g
    • 贪婪 每次捕获的时候,会尽可能的多捕获一些东西,解决 在原有的修饰符后添加一个?