正则表达式
最近在做freeCodeCamp上的题,做到正则表达式那块,正好自己对正则不是很熟悉,就特来做个笔记记录一下 😀。内容可能不全,但是比较常用的。
在JS中创建正则表达式
- 字面量
let regex = \a\;
- 对象
let regex = new RegExp("a");
匹配模式
下面会一直以字面量形式来举例子, 其实两种使用起来并没有什么区别
方法
先来介绍一下正则有哪些方法
- RegExp.test(String) // 判断字符串是否匹配正则,返回true/false
- String.match(RegExp) // 找到匹配正则的部分, 并返回它, 未匹配返回null
特殊字符
| 字符 | 作用 |
|---|---|
+ |
匹配一次或多次 |
* |
匹配零次或多次 |
? |
匹配零个或一个, 如果紧跟在*、+、?和{}后面,会使量词变为非贪婪 |
x|y |
或者, 匹配x或y |
. |
通配符, 匹配所有 |
^ |
和字符串的开头进行匹配 |
$ |
和字符串的结尾进行匹配 |
[xyz] |
一个字符集, 匹配其中一个或者多个 |
[x-z] |
-连字符, 表示从哪开始到哪结束 |
[^x-z] |
否定字符集, 表示不匹配这些 |
\w |
等同/[A-Za-z0-9_]/,匹配所有的数字和字符以及下划线 |
\W |
等同/[^A-Za-z0-9_]/,不匹配数字和字符以及下划线 |
\d |
等同/[0-9]/,匹配所有的数字 |
\D |
等同/[^0-9]/,不匹配数字 |
\s |
匹配所有空白,包括空格、回车符、制表符、换页符和换行符 |
\S |
匹配所有的非空白符 |
{3,5} |
定义匹配出现几次,从3到5, 后面那个数字并没有什么用 |
(?=...) |
其中...就是需要存在但不会被匹配的部分 |
(?!...) |
其中...就是需要存在但不会被匹配的部分 |
正则表达式标志
| 标志 | 描述 |
|---|---|
g |
全局 |
i |
不区分大小写搜索 |