目录
语法

test(),查看正则表达式与指定的字符串是否匹配
javascript
const reg =/前端/
// test(),查看正则表达式与指定的字符串是否匹配
const res = reg.test('学前端,找黑马')//匹配到返回true,匹配不到返回false
console.log(res);
exec(),查找符合规则的字符串
javascript
const reg =/前端/
// exec(),查找符合规则的字符串
const res = reg.exec('学前端,找黑马')
console.log(res);
replace(),用来替换字符串中符合规则的字符
javascript
const reg =/前端/
// replace(),用来替换字符串中符合规则的字符
const str = '学前端,找黑马'
const res = str.replace(reg,'java')
console.log(res);//可以用于敏感词替换
match(),在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
javascript
const reg =/前端/
// match(),在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
const str = '学前端,找黑马'
console.log(str.match(reg));
修饰符

i:ignore的缩写,正则匹配时字母不区分大小写
javascript
//i:ignore的缩写,正则匹配时字母不区分大小写
const reg =/a/
console.log(reg.test('a'));//true
console.log(reg.test('A'));//false
const reg =/a/i
console.log(reg.test('a'));//true
console.log(reg.test('A'));//true
g:单词global的缩写,匹配所有满足正则表达式的结果
javascript
//g:单词global的缩写,匹配所有满足正则表达式的结果
const reg =/java/g
const str ='java,我爱java,我喜欢java'
console.log(str.replace(reg,'前端'))
修饰符可以写多个,且不分顺序
javascript
// 可以写多个修饰符
const reg =/java/gi//不分顺序
元字符
边界符

单词边界 \b
javascript
//单词边界 \b
const reg =/\bcat\b/g
const str ='the cate cat is blue'
console.log(str.replace(reg,'dog'))
字符串边界 ^ $
javascript
//字符串边界 ^ $
//^以......开头
const reg = /^a/
console.log(reg.test('abc'));//true
//$以......结尾
const reg = /a$/
console.log(reg.test('bca'));//true
const reg = /^a$///表示精确匹配
console.log(reg.test('abca'));//false
量词

*表示0或更多次
javascript
const reg = /^a*$/
console.log(reg.test('aaa'));//true
console.log(reg.test(''));//true
console.log(reg.test('b'));//false
+表示1或更多次
javascript
const reg = /^a+$/
console.log(reg.test('aaa'));//true
console.log(reg.test(''));//false
console.log(reg.test('b'));//false
?:表示0次或1次
javascript
const reg = /^a?$/
console.log(reg.test('aaa'));//false
console.log(reg.test(''));//true
console.log(reg.test('b'));//false
{n}表示只能有n次
javascript
const reg = /^a{3}$/
console.log(reg.test('aaa'));//true
console.log(reg.test(''));//false
console.log(reg.test('b'));//false
{n,}表示大于等于n次
javascript
const reg = /^a{3,}$/
console.log(reg.test('aaa'));//true
console.log(reg.test('aaaaa'));//true
console.log(reg.test('b'));//false
{n,m}表示n次到m次
javascript
const reg = /^a{3,10}$/
console.log(reg.test('aaa'));//true
console.log(reg.test('aaaaa'));//true
console.log(reg.test('b'));//false
字符类

\]:匹配\[\]中任意一个 ```javascript const reg =/[abc]/ //匹配abc中任意一个 console.log(reg.test('abc'));//true console.log(reg.test('andy'));//true ``` -:表示范围 ```javascript const reg =/[a-z]/ const reg = /[A-Z]/ const reg = /[0-9]/ const reg = /[a-zA-Z0-9_]/ ``` \^:取反 ```javascript const reg =/[^abc]/ //abc之外的任意东西 ``` .:匹配除换行之外的任意字符 ```javascript const reg = /./ ``` #### 预定义 ```javascript const reg1 =/\d/ //const reg = /[0-9]/ const reg1 =/\D/ //const reg = /[^0-9]/ const reg1 =/\w/ //const reg = /[a-zA-Z0-9_]/ const reg1 =/\W/ //const reg = /[^a-zA-Z0-9_]/ const reg1 =/\s/ //const reg =/[/t/r/n/v/f]/ const reg1 =/\S/ //const reg =/[^/t/r/n/v/f]/ ``` ### 分组和捕获  #### 分组 ```javascript const reg =/(ab)+/ //ab console.log(reg.test('ab'));//true console.log(reg.test('abab'));//true ``` #### 捕获 ```javascript //分组捕获 //例如将yyyy-mm-dd格式换成mm/dd/yy const reg = /^(\d{4})-(\d{2})-(\d{2})$/ const date = '2023-01-05' // console.log(reg.test(date)); console.log(date.replace(reg,'$2/$3/$1')); ``` vscode中any-rule插件中储存有一些简单常用的正则表达式,合理利用他们能够提升开发效率