正则表达式:
正则表达式:是用于匹配字符串中字符组合的模式
正则表达式作用:
- 表单验证(匹配)
- 过滤敏感词(替换)
- 字符串中提取我们想要的部分(提取)
定义正则表达式语法:
const 变量名 =/表达式/
/ / 是正则表达式字面量
const reg = /前端/
正则表达式的使用步骤:
- 定义正则表达式规则
- 检测查找是否匹配
- text()查看正则表达式与指定字符是否匹配
正则规则.test(被检测的字符串)
正则表达式与指定的字符串匹配,返回true,否则false
检索(查找):
规则.exec(被检测的字符串)
匹配成功就返回一个数组,否则null
元字符:
- 边界符(表示位置,开头和结尾,必须用什么开头,用什么结尾)
^ 和 $ 在一起,表示必须是精确匹配
const str = '二哈'
// ^以xxx开头
// const reg = /^二哈/
// $以xxx结尾
// const reg = /二哈$/
// ^和$一起使用表示精确匹配
// const reg = /^二哈$/
console.log(reg.test(str));
- 量词(表示重复次数)
// {n}前面的模式重复n次
console.log(/1{2}/.test(11))
//{n,}大于或者等于重复n次
console.log(/1{2,}/.test(11))
// {n,m} 重复的次数在n和m之间 大于等于n 小于等于m
console.log(/1{3,8}/.test(111111));
// ^以什么开头 以1开头 2重复2次或者2次以上
console.log(/^12{2}/.test(1222))
// 被()包住的是一个整体
console.log(/^(12){2}/.test(1212));
// * 重复大于0次或者等于0次
console.log(/^1*/.test('')) //true
console.log(/^1*/.test(111111)) //true
// + 只是有一次或者更多
console.log(/^1*/.test('')) //flase
console.log(/^1*/.test(1)) //true
console.log(/^1*/.test(11111)) //true
逗号左右两侧不能出现空格
- 字符类(\d表示0~9)
[ ] 里面加上 - 连字符
[a-z] 表示 a 到 z 26个英文字母都可以
[a-zA-Z] 表示大小写都可以
[0-9] 表示 0~9 的数字都可以
[ ] 里面加上 ^ 取反符号
[abc] 匹配abc其中的任何单个字符
[a-z] 匹配26个小写英文字母其中的任何单个字符
[^a-z] 匹配除了26个小写英文字母之外的其他任何 单个字符
预定义:
修饰符:
语法: /表达式 /修饰符
i 是单词 ignore 的缩写,正则匹配时字母不区分大小写
g 是单词 global 的缩写,匹配所有满足正则表达式的结果(全局)
替换 :replace 替换
字符串.reolace(/正则表达式/,'替换的文本')
const str = 'hello美女,hello帅哥,Hello小可爱'
// 字符串.replace需要替换的字符|正则表达式,替换成什么字符 返回值替换后的字符串
// 定义正则
// global 全局的g
// ignore 忽略i
const reg = /hello/gi
const zfc = str.replace(reg, '你好')
console.log(zfc);