阅读大块头《javascript 权威指南》笔记 10-正则表达式的模式匹配

  • 在正则表达式创建的 RegExp 对象中,ECMAscript5 的标准中,实例是独立的。

  • 用 反斜线 \ 作为转义非字母的特殊字符。

  • ^ 符号定义否定字符,例如 /[^abc]/ 匹配 a b c 之外的所有字符。

  • | 表示可选字符, 例如 /ab|cd|ef/ 匹配 ab 或者 cd 或者 ef,顺序为从左到右。

  • /[a-z]/ 匹配小写字母, /[a-zA-Z0-9]/ 匹配任何字母和数字。

  • search() 的参数如果不是正则表达式,会自动转换为正则表达式。

  • split() 方法的参数也可以是一个正则表达式。

  • [...] 匹配方括号内的任意字符

  • [^...] 不在方括号内的任意字符。

  • . 除换行符和其他 Unicode 航终止符之外的任意字符。

  • \w 任何 ASCII 字符的单词,等同 [a-zA-Z0-9]

  • \W 任何不是 ASCII 字符的单词,同上相反.

  • \s 任意 Unicode 空白符。

  • \S 任意非 Unicode 空白符的字符,但和 \w 不同。

  • \d 任何 ASCII 数字,等同 [0-9]

  • \D 除了 ASCII 数字外的任意字符。

  • {n,m} 匹配前一项至少 n 次,但是不超过 m 次。

  • {n,} 匹配前一项 n 次或者更多。

  • {n} 匹配前一项 n 次

  • ? 匹配前一项 0 次或者 1 次,等同 {0,1}

  • + 匹配 1 次或者多次,等同 {1,}

  • * 匹配前一项 0 次或者多次,等同 {0,}

  • (...) 组合,将几个项组成为一个单元

  • (?:...) 仅组合,但不记忆和改组相匹配的字符

  • ^ 匹配开头

  • $ 匹配结尾

  • (?=P) 零宽正向先行断言,要求接下来的字符都与 p 匹配,但是不包括匹配 p 的字符。

  • (?!p) 零宽负向先行断言,要求接下来的字符不与 p 匹配。