1.1是什么?
是用于匹配字符串中字符串组合的模式
1.1.2使用场景 :用于验证表单,还也可以过滤页面内容中的一些敏感词(替换),或者从字符串中获取特定的部分(提取).
1.2语法?
1.2.1 流程?
①定义规则 ②根据规则查找或者判断
1.2.2 如何定义语法?如何查找或者判断?
规则名.test(需要查找或者判断的对象名) 返回的的值是 布尔值
规则名.exec(需要查找或者判断的对象名) 返回的数组型
//假定已输入的内容
const str = '谢谢你,你个别赛'
//定义规则
const reg = /谢谢你/
//是否匹配
reg.test(str) //返回true
// 3. exec()
console.log(reg.exec(str)) // 返回数组
1.3元字符
元字符是具有特殊含义字符,可以提高灵活性和强大的匹配功能。
元字符分类:
①边界符(表示位置,开头和结尾,必须用什么开通,用什么结尾)
②量词(表示重复次数)
③字符类(比如\d 表示0-9)
<script>
// 元字符
// console.log(/哈/.test('哈')) // true
// console.log(/哈/.test('哈哈')) // true
// console.log(/哈/.test('二哈')) // true
// console.log('------------------')
// // 1. 边界符
// console.log(/^哈/.test('哈')) // true
// console.log(/^哈/.test('哈哈')) // true
// console.log(/^哈/.test('二哈')) // flase
// console.log(/^哈$/.test('哈')) // true 只有这种情况为true 否则全是false
// console.log(/^哈$/.test('哈哈')) // false
// console.log(/^哈$/.test('二哈')) // false
// console.log('------------------')
// // 量词 * 类似 >=0 次 可以是空 可以是多个哈 但是不能出现其他字符
// console.log(/^哈$/.test('哈')) // true
// console.log(/^哈*$/.test('')) // true
// console.log(/^哈*$/.test('哈')) // true
// console.log(/^哈*$/.test('哈哈')) // true
// console.log(/^哈*$/.test('二哈很傻')) // false
// console.log(/^哈*$/.test('哈很傻')) // false
// console.log(/^哈*$/.test('哈很哈')) // false
// console.log('------------------')
// // 量词 + 类似 >=1 次
// console.log(/^哈$/.test('哈')) // true
// console.log(/^哈+$/.test('')) // false
// console.log(/^哈+$/.test('哈')) // true
// console.log(/^哈+$/.test('哈哈')) // true
// console.log(/^哈+$/.test('二哈很傻')) // false
// console.log(/^哈+$/.test('哈很傻')) // false
// console.log(/^哈+$/.test('哈很哈')) // false
// console.log('------------------')
// console.log('------------------')
// // 量词 ? 类似 0 || 1
// console.log(/^哈?$/.test('')) // true
// console.log(/^哈?$/.test('哈')) // true
// console.log(/^哈?$/.test('哈哈')) // true
// console.log(/^哈?$/.test('二哈很傻')) // false
// console.log(/^哈?$/.test('哈很傻')) // false
// console.log(/^哈?$/.test('哈很哈')) // false
// 量词 {n} 写几,就必须出现几次
console.log(/^哈{4}$/.test('哈'))
console.log(/^哈{4}$/.test('哈哈'))
console.log(/^哈{4}$/.test('哈哈哈'))
console.log(/^哈{4}$/.test('哈哈哈哈'))
console.log(/^哈{4}$/.test('哈哈哈哈哈'))
console.log(/^哈{4}$/.test('哈哈哈哈哈哈'))
console.log('------------------')
// 量词 {n,} >=n
console.log(/^哈{4,}$/.test('哈'))
console.log(/^哈{4,}$/.test('哈哈'))
console.log(/^哈{4,}$/.test('哈哈哈'))
console.log(/^哈{4,}$/.test('哈哈哈哈'))
console.log(/^哈{4,}$/.test('哈哈哈哈哈'))
console.log(/^哈{4,}$/.test('哈哈哈哈哈哈'))
console.log('------------------')
// 量词 {n,m} 逗号左右两侧千万不能有空格 >=n && <= m
console.log(/^哈{4,6}$/.test('哈'))
console.log(/^哈{4,6}$/.test('哈哈'))
console.log(/^哈{4,6}$/.test('哈哈哈'))
console.log(/^哈{4,6}$/.test('哈哈哈哈'))
console.log(/^哈{4,6}$/.test('哈哈哈哈哈'))
console.log(/^哈{4,6}$/.test('哈哈哈哈哈哈'))
console.log(/^哈{4,6}$/.test('哈哈哈哈哈哈哈'))
console.log('------------------')
// 字符类 [abc] 只选1个
console.log(/^[abc]$/.test('a')) // true
console.log(/^[abc]$/.test('b')) // true
console.log(/^[abc]$/.test('c')) // true
console.log(/^[abc]$/.test('ab')) // false
console.log(/^[abc]{2}$/.test('ab')) // true
console.log('------------------')
// 字符类 [a-z] 只选1个
console.log(/^[A-Z]$/.test('p')) // false
console.log(/^[A-Z]$/.test('P')) // true
console.log(/^[0-9]$/.test(2)) // true
console.log(/^[a-zA-Z0-9]$/.test(2)) // true
console.log(/^[a-zA-Z0-9]$/.test('p')) // true
console.log(/^[a-zA-Z0-9]$/.test('P')) // true
console.log('------------------')
</script>
1.3.3 字符类写法
1.4修饰符
作用 约束正则执行的某些行为,是否区分大小写,是否支持多行匹配。
/表达式/修饰符
修饰符有两个 一个是 ignore 一个是g 可以简写为i 和 global
i代表在匹配的时候字母不区分大小写
g代表检索所有的数据
<script>
console.log(/^java$/.test('java'))//true
console.log(/^java$/i.test('JAVA'))//true 用修饰符i不区分大小写
console.log(/^java$/i.test('Java'))//true i不区分大小写
</script>
替换案例1
.replace 替换方法
<script>
console.log(/^java$/.test('java'))//true
console.log(/^java$/i.test('JAVA'))//true 用修饰符i不区分大小写
console.log(/^java$/i.test('Java'))//true i不区分大小写
const str = 'java是一门编程语言,学完java工资很高'
//g 全局匹配
const re = str.replace(/java/ig,'前端')
console.log(re)
</script>