正则表达式

正则表达式

基本使用

 let str = "shishdkahdjks器前端萨迪克进化萨发几个@dshmjfk"
// 定义规则
let reg = /前端/
let reg1 = /前s端/
// 测试是否匹配
console.log(reg.test(str)); //true
console.log(reg1.test(str)); // false

console.log(reg.exec(str)); //数组,里面有找到的索引等
console.log(reg1.exec(str)); // null

元字符

边界符

边界符 说明
^ 匹配行首(从谁开始)
$ 匹配行尾(以谁结束)
 console.log(/^二哈/.test('二哈dsadas')) //true
console.log(/^二哈/.test('sda二哈dsadas')) //false
console.log(/二哈$/.test('sda二哈dsadas'))// false
console.log(/二哈$/.test('sda二哈'))//true
console.log(/^二哈$/.test('sda二哈'))//false
console.log(/^二哈$/.test('二哈'))//true
console.log(/^二哈$/.test('二哈二哈'))//false --- 当 ^ 和 $ 同时存在表示精准匹配

量词

量词 说明
* 重复0次或多次
+ 重复1次或多次
重复0次或1次
重复n次
重复n到无数次
重复n~m次(,两侧不能有空格)
console.log(/^哈$/.test('哈哈')) //false
console.log(/^哈*$/.test('哈哈')) //true
console.log(/^哈*$/.test(''))//true
console.log(/^哈*$/.test('s哈哈'))//false
console.log(/^哈*$/.test('哈哈s'))//false
console.log(/^哈*$/.test('哈dfs哈'))//false

console.log('------')
console.log(/^哈$/.test('哈哈')) //false
console.log(/^哈+$/.test('哈哈')) //true
console.log(/^哈+$/.test(''))//false

console.log('------')
console.log(/^哈$/.test('哈哈')) //false
console.log(/^哈?$/.test('哈哈')) //false
console.log(/^哈?$/.test(''))//true

字符类

字符类 说明
[] 中括号包裹的字符串中任意一个出现(注意:只有一个)
[a-z] 小写字母的一个
[A-Z] 大写字母的一个
[0-9] 数字的一个
[0-9a-zA-Z] 可以连在一起
[^0-9] 除了数字的任意一个(注意:^需要在中括号里面,取反操作)
. 除了换行符以外任意一个
console.log(/^[abc]$/.test('a')) //ture
console.log(/^[abc]$/.test('ab')) //false---只有一个
console.log(/^[abc]$/.test('b')) //true
console.log(/^[abc]$/.test('v')) //false

预定类

预定类 说明
\d 匹配数字任意一个,相当于[0-9]
\D 除了数字的字符,相当于[^0-9]
\w 字母,数字和下换线任意一个,相当于[a-zA-Z0-9_]
\W 除了字母、数字和下换线任意一个,相当于[^a-zA-Z0-9_]
\s 匹配空格(包括换行符、制表符等),相当于[\t\r\n\v\f]
\S 匹配非空格的符号,相当于 [^\t\r\n\v\f]

修饰符

语法:/表达式/修饰符

修饰符 说明
i 忽略小写(ignore)
g 匹配所有的(global)
let str1='java很难,学JAVA吗?'
// replace替换的意思
console.log(str1.replace(/java/gi, '前端'));//前端很难,学前端吗?
posted @ 2023-06-09 11:34  风紧·扯呼  阅读(16)  评论(0)    收藏  举报