正则表达式是用于匹配字符串中字符组合的模式,也是对象
一,正则表达式有什么作用
1,表单验证(匹配)
2,过滤敏感词(替换)
3,字符串中提取我们想要的部分(提取)
二,语法
1,定义规则
2,查找
三,定义正则表达式语法
let 变量名 = /表达式/
其中/ / 是正则表达式字面量
四,判断是否有符合规则的字符串
test()方法 //用来查看正则表达式与指定的字符串是否匹配
语法:
regObj.test(被检测的字符串)
返回结果为布尔值
let obj = /前端/
console.log(obj.test('我们都在学前端')) //返回true
五,检索(查找)符合规则的字符串
exec()方法 //在一个指定字符串中执行一个搜索匹配
语法:
regObj.exec(被检测的字符串)
匹配成功,返回一个数组,否则返回null
let obj = /前端/
console.log(obj.exec('我们都在学前端'))
六,元字符
具有一些特殊含义的字符,元字符进行分类:
1,边界符(表示位置,开头和结尾,必须用什么开头,什么结尾)
2,量词(表示重复次数)
3,字符类(比如\d表示0-9)
一,边界符
^ 表示匹配行首的文本(以谁开始)
$ 表示匹配行尾的文本(以谁结束)
console.log(/^哈/.test('哈哈')) //true
console.log(/哈$/.test('你哈')) //true
console.log(/^哈$/.test('哈哈')) //false
console.log(/^哈$/.test('哈')) //true
二,量词
设定某个模式出现的次数
//量词 n>=0
console.log(/a*/.test('aa')) //true
console.log(/a*/.test('')) //true
console.log(/a*/.test('a')) //true
// 量词n>=1
console.log(/a+/.test('a')) //true
console.log(/a+/.test('aa')) //true
console.log(/a+/.test('')) //false
// 量词0||1
console.log(/^a?$/.test('a')) //true
console.log(/^a?$/.test('')) //true
console.log(/^a?$/.test('aa')) //false
// 只能出现n次
console.log(/^a{3}$/.test('a')) //false
console.log(/^a{3}$/.test('aaa')) //true
console.log(/^a{3}$/.test('aa')) //false
// >=n
console.log(/^a{3,}$/.test('a')) //false
console.log(/^a{3,}$/.test('aaa')) //true
console.log(/^a{3,}$/.test('aaaa')) //true
// >=n <=m
console.log(/^a{3,6}$/.test('a')) //false
console.log(/^a{3,6}$/.test('aaa')) //true
console.log(/^a{3,6}$/.test('aaaaaaa')) //false
console.log(/^a{3,6}$/.test('aaaaa')) //true
三,字符类
1,在[ ]里加上-连字符
比如:
[A-Z]表示A到Z 26个英文字母都可以
[a-zA-Z]表示大小写都可以
[0-9]表示0-9的数字都可以
2,在[ ]里面加上^取反符号
比如:
[^a-z]匹配除了小写字母以外的字符
3, .匹配除换行符之外的任何单个字符
4,预定义:某些常见模式的简写方式
四,修饰符
修饰符约束正则执行的某些细节行为,如是否区分大小写
语法:
/表达式/修饰符
i是单词ignore的缩写,正则匹配不区分大小写
console.log(/a/i.test('a'))
g是单词global的缩写,正则匹配所有满足正则表达式的结果
console.log(/a/g.test('a'))
五,replace替换
字符串.replace(/正则表达式/,'替换的文本')
let text = document.querySelector('textarea')
let button = document.querySelector('button')
let div = document.querySelector('div')
button.addEventListener('click',function(){
div.innerHTML =text.value.replace(/激情|基情/g,'**')
})
案例
匹配style内容和js内容
const regStyle = /<style>[\s\S]*<\/style>/
const regScript = /<script>[\s\S]*<\/script>/