Xiaoshier Blog

JavaScript 基础知识之 RegEpx

整理记录 RegExp 知识, 查漏补缺, 方便以后查阅.

正则表达式知识详解

正则表达式, 匹配的时候, 可以记忆匹配的字符, 在后面也可以使用

  1. 表示

    • 字面表达式
      var re = /pattern/flags;
      var re = /abd/i;
      
    • 构造函数
      var re = new RegExp(‘pattern’, ‘flags’);
      var re = new RegExp(‘abd’);
  2. flags

    • g 全局搜索
    • i 不区分大小写
    • m 多行
    • y 执行粘性搜索, 匹配从目标字符串的当前位置开始
  3. function

    • replace
    • test
    • match
    • split
    • search
    • exec
  4. pattern

    • 使用简单模式匹配
      /anc/i
    • 使用特殊符号模式匹配
字符 含义
* 匹配前一个表达式0次或多次{0,}
+ 匹配前一个表达式1次或多次{1,}
? 匹配前一个表达式0次或1次{0,1}
^ 匹配输入的开始
$ 匹配输入的结束
. 匹配非换行符以外的任意字符
(x) 匹配x 并记住 x /(foo)(bar)\1\2/ 匹配’foo bar foo bar’; /(foo)(bar)\2\1/ 匹配’foo bar bar foo’
(?:x) 匹配x但不记住 x
x(?=y) 匹配后面紧跟y 的 x
x(?!y) 匹配后面不是 y 的 x
x/y 匹配 x 或 y
[xyz] 匹配一个字符集合, 仅匹配一个字符, xyz 中的一个字符
[^a-z] 匹配 非 a-z 中的字符
[\b] 匹配一个退格
{n, m} 匹配前面的字符至少 n 次, 至多 m 次
\s 匹配空白字符包括空格, 换行, 换页, 制表符
\d 匹配数字
\w 匹配一个单字符 [A-Za-z0-9_]
\n n 是正整数, 指的(x)记忆的第 n 个字符, 在 replace 等中使用 $n
\b 匹配边界 /a\b/ 匹配’abb’ 中的 a; /\ba/ 匹配’bba’ 中的 a

参考资料

RegExp