正则表达式是一个描述字符模式的对象。JavaScript 的 RegExp 类表示正则表达式,String 和 RegExp 都定义了方法,后者使用正则表达式进行强大的模式匹配和文本检索与替换功能。
正则表达式的定义
正则表达式可以使用 RegExp() 构造函数来创建 RegExp 对象,更多的是通过一种特殊的直接量语法来创建。
var pattern = new RegExp('s$');
var pattern = / s$ /;
正则表达式中的所有字母和数字都是按照字面含义进行匹配的。JavaScript 正则表达式语法也支持非字母的字符匹配,这些字符需要通过反斜线(\)作为前缀转义。
1.直接量字符
| 字符 | 匹配 |
|---|---|
| 字母和数字字符 | 自身 |
| \o | NUL 字符(\u0000) |
| \t | 水平制表符(\u0009) |
| \v | 垂直制表符(\u000B) |
| \r | 回车符(\u000D) |
| \n | 换行符(\u000A) |
| \xnn | 由十六进制数 nn 指定的拉丁字符,例如,\x0A 等价于 \n |
| \uxxxx | 由十六进制数 xxxx 指定的 Unicode 字符,例如 \u0009 等价于 \t |
| \cX | 控制字符 ^X,例如,\cJ 等价于换行符 \n |
2.字符类
将直接量字符单独放进方括号内就组成了字符类。一个字符类可以匹配它所包含的任意字符。
| 字符 | 匹配 |
|---|---|
| […] | 方括号内的任意字符 |
| [^…] | 不在方括号内的任意字符 |
| . | 除换行符和其他 Unicode 行终止符之外的任意字符 |
| \w | 任何 ASCII 字符组组成的单词,等价于 [ a-zA-Z0-9 ] |
| \W | 任何不是 ASCII 字符组成的单词,等价于 [ ^a-zA-Z0-9 ] |
| […] | 方括号内的任意字符 |
| […] | 方括号内的任意字符 |
| […] | 方括号内的任意字符 |
| […] | 方括号内的任意字符 |










