也叫规则表达式Regular Expression,用它的规范写一串字符串,这个字符串可以用来检索、替换。 一般定义const reg = / /,在双斜杠里面就写的是正则表达式。
一、正则的方法
例如 reg = /abc/,表示匹配abc。下面就用它来介绍正则的几种方法:
1. test()返回true/false,查看是否匹配。一般用在校验。
reg.test('abcc') //输出true,匹配到了
reg.test('adss') //输出false,没匹配上
2. repalce()返回字符串,把匹配上的片段用别的字符串替代掉
'yyabczz'.replace(reg,'***') //输出'yy***zz'
'abcabcyy'.replace(reg,'x') //输出'xabcyy'
3. exec()查找并返回当前的匹配结果,并以数组的形式返回
reg.exec('aabcww')
//输出['abc', index: 1, input: 'aabcww', groups: undefined]
reg.exec('aabcwwabc')
//输出['abc', index: 1, input: 'aabcwwabc', groups: undefined]
reg.exec('aa')
//输出null
4. match()
'aabcww'.match(reg)
//输出['abc', index: 0, input: 'abcdfeabc', groups: undefined] 当reg不是全局的时候,和上面exec得到的一样
//当reg = /abc/g , g是global表示全局(后面会说)
'abcdfeabc'.match(reg) //输出['abc', 'abc']
二、正则的语法
1. 修饰符 写在/abc/后面的
| 修饰符 | 全称 | 作用 |
|---|---|---|
| g | global | 全局匹配,查找所有的匹配项 |
| i | ignore | 忽略大小写匹配 |
2. 元字符-边界符
2.1单词边界 \b
比如想要替换单词cat,用正则/cat的时候当它遇到catter的时候也会把前面三个字母替换掉。于是就用到了单词边界\b。
写做:const reg = /\bcat\b/
2.2字符串边界 ^ $
/^a/表示匹配以a开头的字符串 /a/叫做精确匹配,必须是一模一样,reg.test('aaa')也是会返回false,不匹配。
3. 元字符-量词
| 写法 | 作用 |
|---|---|
| /a*/ | 0次或更多次 |
| /a+/ | 1次或更多次 |
| /a?/ | 0次或1次 |
| /a{n,}/ | 大于等于n次 |
| /a{n,m}/ | n-m次 |
4. 元字符-字符类
| 写法 | 作用 |
|---|---|
| /[abc]/ | 匹配abc中的任意一个 |
| /[a-z]/ | 匹配a-z中的任意一个 |
| /[a-zA-Z0-9_]/ | 任意字母数字下划线 |
| /[^abc]/ | 匹配abc以外的任意一个 |
| /./ | 匹配除换行符以外的任意字符;reg.test('')也匹配不到,为false |
| 预定义 | |
| --------- | --------- |
| /\d/ | ===/[0-9]/ |
| /\D/ | ===/[^0-9]/ |
| /\w/ | ===/[0-9]/ |
| /\W/ | ===/[^0-9]/ |
5. 分组
5. 分支
笔记来源:黑马前端两小时快速掌握正则表达式