js-16正则表达式
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.优先级顺序
\' 单引号
8.选择符 |
[1|2]
# 05.优先级顺序 [外链图片转存中...(img-F0laoU1M-1669704188472)] 工具网站 REGEXPER 理解正则的网站