一、简介
正则表达式又称规则表达式,(Regular Expression,在代码中常简写为 regex、regexp 或 RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。
1、创建正则
- 构造函数法
const 变量名 = new RegExp("正则表达式","匹配模式");
- 字面量法
const 变量名 = /"正则表达式"/匹配模式;
2、匹配模式
- i:忽略大小写
- g:全局匹配模式
注意: 匹配模式可以同时写多个,并且不分前后(ig)
3、常用方法
-
test
(1)作用:使用 test方法可以检查一个字符串是否符合正则表达式的规则;
(2)返回值:若是返回 true,否则返回 false
(3)语法:/表达式/.test(对象名) -
exec
(1)作用:使用 exec方法检索字符串中指定的值,返回找到的值,并确定其位置;
(2)语法:/表达式/.exec(对象名)
4、字符串结合正则
- match
(1)作用:获取匹配正则的子字符串;
(2)返回值:返回匹配的数组;
(3)语法:str.match(表达式) - replace
(1)作用:替换所匹配正则的子字符串;
(2)返回值:返回替换后的字符串;
(3)语法:str.replace(表达式,用于替换的内容)
二、语法
1、方括号
| 命令 | 作用 |
|---|---|
| [ ] | 查找方括号之间的任意字符 |
| [^ ] | 查找不在方括号之间的任意字符 |
| [0-9] | 查找从 0-9 的任意数字 |
| [A-Z] | 查找所有大写字母 |
| [a-z] | 查找所有小写字母 |
| [A-z] | 查找所有字母 |
2、量词
| 命令 | 作用 |
|---|---|
| {n} | 出现 n 次 |
| {m,n} | 出现 m~n 次 |
| {m, } | 出现 m 次以上 |
| + | 至少一个,相当于 {1, } |
| * | 零个或多个都可以,相当于 {0, } |
| ? | 零个或一个,相当于 {0,1}(非贪婪模式) |
| ^a | 表示以 a 开头 |
| a$ | 表示以 a 结尾 |
| ^a$ | 要求字符串必须完全符合正则表达式 |
| ?=n | 匹配任何其后紧接指定字符串 n 的字符串 |
| ?!n | 匹配任何其后没有紧接指定字符串 n 的字符串 |
3、元字符
| 命令 | 作用 |
|---|---|
| . | 表示除换行符外的任意单个字符(用 \. 表示 .) |
| \w | 任意字母、数字、下划线 |
| \W | 除了字母、数字、下划线 |
| \d | 任意 0-9 数字 |
| \D | 除了 0-9 数字 |
| \s | 单个的空白字符(空格/换行符) |
| \S | 除了空白符 |
| \b | 单词边界 |
| \B | 除了单词边界 |
4、反向引用
- 作用:通常是用来查找或限定重复、指定标识配对出现等
- 语法:“\1”要求必须是两个相同的字符
| 命令 | 作用 |
|---|---|
| [A-z]\1 | 表达连续两个相同的字母 |
| [A-z]\1{2} | 表达连续三个相同的字母 |
5、注意事项
- 通过量词可以设置一个内容出现的次数,量词只对它前面的内容起作用;
- 可以通过小括号 () 选定一块需要作用的内容;
- 正则表达式中的转义字符 \;
- 使用字面量法时,\ 可以直接使用;但是使用构造函数时,由于它的参数是一个字符串,而 \ 在字符串中也是转义字符,故若要使用 \ 则需要用 \\ 代替。