一、含义
正则表达式是用于匹配字符串中字符组合的模式,在js中,正则表达式也是对象。通常用来查找,替换那些符合正则表达式的文本,许多语言都支持正则表达式。
二、语法
2.1定义规则
const 变量名=/表达式/
例如:
Const reg=/前端/
注:其中/ /是正则表达式字面量
2.2查找
判断是否有符合规则的字符串。使用test()方法 用来查看正则表达式与指定的字符串是否匹配。
例如:
const str='IT培训,前端开发'
const reg=/前端/
console.log(reg.test(str))
如果正则表达式与指定的字符串匹配,返回true,否则false.
2.3检索(查找)符合规则的字符串
例如:
const str = '我们在学习前端,希望学习前端能高薪毕业。'
// 1.定义规则
const reg = /前端/
// 2.检索
console.log(reg.exec(str))
返回的是数组,否则为false,数组里的是第一次匹配的结果。
三、元字符
1.边界符
| ^ |
表示匹配行首的文本(以谁开始) |
| $ |
表示匹配行尾的文本(以谁结束) |
如果^和$在一起,表示必须是精确匹配。
例如:
console.log(/^哈哈$/.test('哈'))//false
console.log(/^哈$/.test('哈'))//true
2.量词
| * |
重复零次或更多次 |
| + |
重复一次或更多次 |
| ? |
重复零次或一次 |
| {n} |
重复n次 |
| {n,} |
重复n次或更多次 |
| {n,m} |
重复n次到m次 |
3.字符类
(1)[]表示匹配字符集合;/^[]$/表示精确匹配,只能匹配一个字母
例如:
console.log(/[abc]/.test('aacc'))//true
console.log(/^[abc]{5}$/.test('aaccb'))//true
(2)连字符-,表示一个范围
例如:
console.log(/^[a-z]$/.test('c'))//true
[a-z]表示a到z26个英文字母都可以
[a-zA-Z]表示大小写都可以
[A-Z]大写
[0-9]表示0~9的数字都可以
(3)取反符号^(要在[]里面添加)
[^a-z]匹配除了小写字母以外的字符
(4).(点)表示匹配除换行符以外的任何单个字符
(5)预定义:指的是某些常见模式的简写方式。
| 预定类 | 说明 |
| \d | 匹配0-9之间的任一数字,相当于[0-9] |
| \D | 匹配所有0-9以外的字符,相当于[^0-9] |
| \w | 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9] |
| \W | 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9] |
| \s | 匹配空格(包括换行符、制表符、空格符等),相当于[\r\t\n\v\f] |
| \S | 匹配非空格的字符,相当于[^ \r\t\n\v\f] |
4.修饰符
(1)语法
/表达式/修饰符
例如:
console.log(/a/i/test('a'))//true
console.log(/a/i.test('A'))//true
i是ignore的缩写,正则匹配时字母不区分大小写
g是global的缩写,匹配所有满足正则表达式的结果(全局替换)
(2)替代replace
字符串.replace(/正则表达式/,'替换的文本')
const str = 'java是一门编程语言,学完JAVA'
const reg = str.replace(/java/ig, '前端')
console.log(reg)
24万+

被折叠的 条评论
为什么被折叠?



