JS中的正则表达式

152 阅读2分钟

正则表达式

最近在做freeCodeCamp上的题,做到正则表达式那块,正好自己对正则不是很熟悉,就特来做个笔记记录一下 😀。内容可能不全,但是比较常用的。

在JS中创建正则表达式

  1. 字面量
let regex = \a\;
  1. 对象
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 不区分大小写搜索