| 代码 | 描述 |
|---|---|
. | 匹配除换行符之外的任意字符 |
[...] | 匹配方括号中的任意单个字符 |
[^...] | 匹配不在方括号中的任意单个字符 |
\w | 匹配数字、字母和下划线,[a-zA-Z0-9_] |
\W | 匹配任意单个非字母、数字或下划线的字符 |
\s | 匹配任意单个空白字符(空格、制表符、换行符、回车符等) |
\S | 匹配任意单个非空白字符 |
\d | 匹配任意单个数字 |
\D | 匹配任意单个非数字字符 |
\b | 匹配任意单个单词边界 |
\B | 匹配任意单个非单词边界的位置 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
| 代码 | 描述 |
|---|---|
* | 匹配前面的字符 0 次或多次 |
+ | 匹配前面的字符 1 次或多次 |
? | 匹配前面的字符 0 次或 1 次 |
{n} | 匹配前面的字符恰好 n 次 |
{n, } | 匹配前面的字符至少 n 次 |
{n, m} | 匹配前面的字符至少 n 次,至多 m 次 |
x|y | 左右两边的模式只要有一个匹配就可以 |
() | 将模式分组,并记住匹配的文本 |
\1 | 匹配第 1 个分组所记住的文本 |
\2 | 匹配第 2 个分组所记住的文本 |
\n | 匹配第 n 个分组所记住的文本 |
| 代码 | 描述 |
|---|---|
(exp) | 匹配exp,每个分组将产生分组号。可用\x的形式使用分组号,其中x表示数字。例如:/<(\w+)><\/\1>/可以匹配成对出现的HTML标签; |
(?:exp) | 匹配exp,但不产生分组号 |
(?=exp) | 负向零宽断言, 表示在它后面必须匹配 exp |
(?<=exp) | 负向零宽断言, 表示在它前面必须匹配 exp |
(?!exp) | 负向零宽断言,表示在它后面不能匹配 exp |
(? | 负向零宽断言, 表示在它前面不能匹配 exp |
举例说明:
(?=exp)/^\d+(?=%)/ 来匹配所有以百分号结尾的数字,例如:123%:匹配到 123。
45%:匹配到 45。
下列字符串都不能被匹配:
123:不以百分号结尾。
45%6:百分号后面还有其他字符。
(?<=exp)我们可以使用正则表达式 /(?<=).*(?=<\/em>)/ 来匹配所有被 和 包含的字符串,例如:
<em>hello</em>:匹配到 hello。
<em>world</em>:匹配到 world。
下列字符串都不能被匹配:
<em>hello</em>world:</em> 后面还有其他字符。
hello<em></em>:<em> 前面没有其他字符
(?!exp)我们可以使用正则表达式 /^(?!abc)/ 来匹配所有不以 abc 开头的字符串,例如:
def:不以 abc 开头。
123:不以 abc 开头。
下列字符串都不能被匹配:
abcdef:以 abc 开头。
abc123:以 abc 开头。
(?
我们可以使用正则表达式 /(? 来匹配所有不以 abc 结尾的字符串,例如:def:不以 abc 结尾。
123:不以 abc 结尾。
下列字符串都不能被匹配:
defabc:以 abc 结尾。
123abc:以 abc 结尾。
RegExp.prototype.test()test() 方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回 true 或 false。
/\d+/.test('hello'); // false
RegExp.prototype.exec()exec() 方法在一个指定字符串中执行一个搜索匹配。返回一个结果数组或 null。
String.prototype.search()search() 方法执行正则表达式和 String 对象之间的一个搜索匹配。如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。
String.prototype.match()match()方法检索返回一个字符串匹配正则表达式的结果。
String.prototype.replace()replace() 方法返回一个由替换值替换部分或所有的模式(pattern)匹配项后的新字符串。
模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。
如果pattern是字符串,则仅替换第一个匹配项。
String.prototype.split()