正则表达式创建
-
字面量
var reg = /abcdefg/ console.log(reg)
-
构造函数
var reg2 = new RegExp('abcdefg') console.log(reg2)
元字符
元字符 | 描述 |
---|---|
. | 查找单个字符,除了换行和行结束符 |
\w | 查找单词字符 |
\W | 查找非单词字符 |
\d | 查找数字 |
\D | 查找非数字字符 |
\s | 查找空白字符 |
\S | 查找非空白字符 |
限定符
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串 |
n* | 匹配任何包含零个或多个 n 的字符串 |
n? | 匹配任何包含零个或一个 n 的字符串 |
n{x} | 匹配包含 x 个 n 的序列的字符串 |
n{x,y} | 匹配包含最少 x 个、最多 y 个 n 的序列的字符串 |
n{x,} | 匹配包含至少 x 个 n 的序列的字符串 |
边界符
量词 | 说明 |
---|---|
^ | 匹配开头,在多行检测中,会匹配一行的开头 |
$ | 匹配结尾,在多行检测中,会匹配一行的结尾 |
特殊符号
量词 | 说明 |
---|---|
[] | 表示是[]里面的任意一个都行 |
[^] | 反字符集合,表示写在[]之外的任意一个都行 |
- | 范围,比如:a-z表示从字母a到字母z都可以 |
| | 或者,正则里面的a|b 表示字母a或者b都可以 |
标识符
量词 | 说明 |
---|---|
i | 比如:/\w/i 就是匹配的时候不去区分大小写 |
g | 比如:/\w/g 就是全局匹配字母数字下划线 |
正则表达式的方法
- test
== 用来检测字符串是否符合我们正则的规则的
== 语法: 正则.test(字符串)
== 返回值:布尔值boolean
- exec
== 把字符串中符合条件的内容捕获出来
== 语法:正则.exec(字符串)
== 返回值:把字符串中符合正则要求的第一项以及一些其他信息,以数组的形式返回,如果没有匹配的返回null
== 全局匹配和非全局匹配有区别
+ 如果是非全局匹配,只能匹配第一项
+ 如果是全局匹配,就能依次匹配第一项,第二项,…
字符串方法
-
search
== 是查找字符串中是否有满足正则条件的内容
== 语法:字符串.search(正则)
== 返回值:有的话返回开始索引,没有返回-1
== 是否是全局匹配不影响,永远返回符合条件的第一个的索引
-
match
== 找到字符串中符合正则条件的内容返回
== 语法:字符串.match(正则)
== 返回值:
== 没有标识符g,是和exec方法一样的返回值
== 有标识符g,是返回一个数组,里面是匹配到的每一项
-
replace
== 将字符串中符合正则条件的字符串替换掉
== 语法:字符串.replace(正则,要替换成的字符串)
== 返回值:替换好的字符串
== 没有标识符g:只替换符合的第一项
== 有标识符g:替换所有符合的项