目录
正则表达式
什么是正则表达式
语法
定义变量
test方法
exec方法
replace方法
match方法
修饰符
元字符
边界符
单词边界
字符串边界
边界符:^
边界符:$
量词
*
+
?
{n}
{n,}
{n,m}
字符类
[]匹配字符集合
.匹配除换行符之外的任意单个字符
预定义
分组和分支结构
分组
分组捕获
分支结构
案例
密码匹配:6-16位字母、数字或者下划线
手机号码脱敏
正则表达式
什么是正则表达式
- 正则表达式是用于匹配字符串中字符组合的模式,许多语言都支持正则表达式。在JavaScript中正则表达式也是对象。
- 就是用来匹配字符串的规则
- 判断一个字符串中是否包含有某个字符或者某个字符串
- 判断用户输入的手机号是否合法
语法
定义变量
const reg = /前端/
test方法
- 用来查看正则表达式与指定的字符串是否匹配。
返回一个布尔值,匹配到返回true,匹配不到返回false。
exec方法
- 查找符合规则的字符串
- 返回值为一个数组,并且会返回目标字符的起始索引
- 如果找不到则会返回一个NULL
replace方法
- 用来替换字符串中符合规则的字符
- 可以用来进行敏感词替换
match方法
- 在字符串内检索指定的值,或找到一个或者多个正则表达式的匹配。
修饰符
修饰符约束正则执行的某些细节行为,如是否区分大小写、是否全局匹配。
- i:单词ignore的缩写,正则匹配时字母不区分大小写
- g:单词global的缩写,匹配所有满足正则表达式的结果
元字符
- 是一些具有特殊含义的字符,可以极大提高灵活性和强大的匹配功能
边界符
单词边界
找出某句话中的某个单词,例如“The cat scattered his food all over the room”
想找到cat这个单词,但是如果只是使用/cat/这个正则,就会同时匹配到cat和scattered这两处文本,这时候就可以用到单词边界\b,它其实匹配的是能构成单词的字符(\w)和不能构成单词的字符(\W)中间的那个位置。
JavaScript |
字符串边界
边界符:^
- 表示匹配行首的文本
JavaScript |
边界符:$
- 表示匹配行尾的文本
JavaScript |
注意:如果^和$在一起,表示必须是精确匹配。 |
量词
- 表示某个模式出现的次数
*
- 重复0次或者更多次
JavaScript |
+
- 重复1次或者更多次
JavaScript |
?
- 重复0次或者1次
JavaScript |
{n}
- 重复n次
{n,}
- 重复n次或者更多次
{n,m}
- 重复n到m次
字符类
[]匹配字符集合
- 后面的字符串只要包含abc中任意一个字符即可
const reg1 = /[abc]/
- 使用连字符-表示一个范围
const reg2 = /[a-z]/ //匹配26个英文小写字母中的任意一个
- []里面加上^表示取反,注意要写到中括号里面
const reg3 = /[^a-z]/ 表示匹配除了26个小写字母以外的字符
.匹配除换行符之外的任意单个字符
JavaScript |
预定义
- 指的是某些常见模式的简写方式
分组和分支结构
分组
我们知道/a+/匹配连续出现的"a",而要匹配连续出现的"ab"时,需要使用/(ab)+/,其中括号是提供分组功能,使量词+作用于"ab"这个整体。
分组捕获
分支结构
- 使用|来进行分支
JavaScript |
案例
密码匹配:6-16位字母、数字或者下划线
const reg = /^[a-zA-Z0-9_]{6,16}$/
手机号码脱敏
JavaScript |