目录
一、认识正则表达式
什么是正则表达式?(Regular Expression,简称regexp)
- 用来「处理字符串」的一种规则(只能处理字符串,不是字符串不能处理,但是可以使用
toString()
方法变为字符串) - 他是一个「规则」:可以验证字符串是否符合某个规则(test),也可以把字符串中符合规则的内容捕获(exec/match...)
二、正则表达式作用
正则表达式(Regular Expression)是一种用于匹配和操作文本的强大工具,它由字符和特殊字符组成,用于定义搜索模式。正则表达式在前端开发中广泛应用于字符串验证、替换、搜索和提取等操作。
三、常用的正则表达式特殊字符和用法
1. 字符匹配:
- 普通字符:直接匹配文本中的普通字符,例如`a`匹配字符`a`。
- 字符类:用方括号`[]`定义一个字符类,匹配其中的任意一个字符。例如`[abc]`匹配字符`a`、`b`或`c`。
- 范围类:在字符类中使用连字符`-`表示范围。例如`[a-z]`匹配任意小写字母。
- 反向类:在字符类的开头使用脱字符`^`表示反向类,匹配除了字符类中的字符以外的任意字符。例如`[^0-9]`匹配除了数字以外的任意字符。
2. 量词:
- `*`:匹配前面的元素零次或多次。
- `+`:匹配前面的元素一次或多次。
- `?`:匹配前面的元素零次或一次。
- `{n}`:精确匹配前面的元素出现 n 次。
- `{n,}`:匹配前面的元素至少出现 n 次。
- `{n,m}`:匹配前面的元素出现 n 到 m 次。
3. 特殊字符:
- `.`:匹配任意单个字符,除了换行符。
- `^`:匹配输入字符串的开始位置。
- `$`:匹配输入字符串的结束位置。
- `\b`:匹配一个单词边界。
- `\B`:匹配非单词的边界
- `\d`:匹配一个数字字符,相当于`[0-9]`。
- `\D`:匹配非数字字符。
- `\w`:匹配一个单词字符,相当于`[a-zA-Z0-9_]`。
- `\W`:匹配非字母、数字和下划线。
- `\s`:匹配一个空白字符,包括空格、制表符、换行符等。
- `\S`:匹配非空白字符。
- `\`:转义字符,用于匹配特殊字符本身。
4. 分组和捕获:
- `()`:用于分组,可以将多个元素组合为一个整体。
- `(?:)`:非捕获分组,用于分组但不捕获结果。
- `|`:分支条件,匹配多个模式中的一个。
四、实际应用:
1. 匹配邮箱地址:
正则表达式:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
解释:以字母、数字或下划线开头,可以包含连字符、加号、点号,接着是@符号,然后是域名,最后是顶级域名。
2. 匹配手机号码:
正则表达式:^1[3456789]\d{9}$
解释:以数字1开头,接着是3、4、5、6、7、8、9之一,最后是9个数字。
3. 匹配日期格式:
正则表达式:^\d{4}-\d{2}-\d{2}$
解释:以4位数字开头,接着是连字符,然后是2位数字,再接着是连字符,最后是2位数字。