01.正则表达式引入
作用: 字符串操作,如字符匹配,字符查找,字符替换操作时,使用正则表达式可以简化实现
含义:某种模式去匹配一类字符串的公式
/**用正则代替写法的案例
* 已知字符串如下:
* Dgfhfgh254bhku289fgdhdy675gfh
* 要求:匹配字符串中数字字符,返回数组中,如: [254,289,675]
* 思路:
* 1.遍历字符串
* 2.判断当前字符是否是数字字符,
* 如果是拼接成字符串 254
* 否则判断拼接字符串是否为空,不为空,存储到数组中,
* 清空拼接字符串,重复上述操作
*/
function test1() {
let str = 'Dgfhfgh254bhku289fgdhdy675gfh'
let arr = []
let line = ''
//1. 遍历字符串
for (let i = 0; i < str.length; i++) {
let chars = str.charAt(i) //获取字符串
//2.判断当前字符是否是数字字符
if(chars > '0' && chars < '9'){
//如果是拼接成字符串
line = line + chars
}else{
// 否则判断拼接字符串是否为空
if(line != ''){
arr.push(line)
line = ''//清空拼接字符串
}
}
}
console.log(arr);
}
// test1()
function test2(){
let str = 'Dgfhfgh254bhku289fgdhdy675gfh'
let reg = /\d+/g //正则表达式
let arr = str.match(reg)
console.log(arr);
}
test2()
02.正则表达式对象
正则表达式数据类型:RegExp
创建方式:
1.构造函数
let reg = new RegExp(正则表达式模式)
2.字面量
let reg = /正则表达式模式/
03.正则常用方法
1. 正则.test(字符串)
返回值:true | false
2.字符串.search(正则)
返回值:索引号 | -1
3.字符串.match(正则)
返回值:数组 | null
4.字符串.replace(正则,‘新字符’)
返回值:替换成功后的新字符串
04.正则字符(开发工作中去网上搜模板)
1.普通字符: 意义本意 0-9 a-z...
2.常用元字符 元字符: 特定意义
匹配所有数字
\d
\D 非
匹配字母,数字,汉字,下划线
\w
\W 非
空白符
\s
\S 非
换行符以外字符
.
匹配方括号任意字符
[ab]
[^ab]
3.连接符 - [0-9] [a-z] [0-9a-zA-Z]
4.限定符 - 量词
+ 至少1次
* 任意次数
? 0或1次
{m} m次
{m,} 最少m次
{m,n} m到n次
5.定位符 -边界
^ 字符开始
$ 字符结束
\b 单词开始结束 \bis\b
6.修饰符 g 全局搜索 i 忽略大小写
7.转义符
. 换行符以外字符
\. 点号
\n 换行
\' 单引号
8.选择符 |
[1|2]
05.优先级顺序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F0laoU1M-1669704188472)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648457969780.png)]
工具网站
REGEXPER 理解正则的网站
\' 单引号
8.选择符 | [1|2]
# 05.优先级顺序
[外链图片转存中...(img-F0laoU1M-1669704188472)]
工具网站
REGEXPER 理解正则的网站