目录
1. 边界符 精确匹配,只要前后都添加了 ^ 和 $ ,则代表只能选择一个
基本使用
test()
<script>
const str = '我们在学习前端'
// 定义规则【正则表达式的规则】
const reg = /前端/ //查找是否有前端两个字的,有则true没有则false
//reg.test(str) 规则.test(字符串)
console.log(reg.test(str))
</script>
exec()
// exec() 返回的是数组,没有找到则返回null
console.log(reg.exec(str)) //['前端', index: 5, input: '我们在学习前端', groups: undefined]
总结
元字符
工具: 在线正则表达式测试
1. 边界符 精确匹配,只要前后都添加了 ^ 和 $ ,则代表只能选择一个
<script>
//边界符 ^以谁开头 $ 以谁结尾
console.log(/^哈/.test('哈')) //true
console.log(/哈$/.test('哈')) //true
console.log(/哈$/.test('二')) //false
console.log(/^哈$/.test('哈')) //true
console.log(/^哈$/.test('哈哈')) //false 当两个一起使用的时候,里面只能出现一个test
console.log(/^二二$/.test('二二')) //true 当两个一起使用的时候,里面只能出现一个test
</script>
2. 量次
// 量词 * ? + {n} {n,} {n,m}
// * 代表 >=0次
// + 代表 >=1次
// ? 代表 =0 || =1次
// {n} 必须3次
// {n,} >=3 3次以上
// {n,m} >=3 && <=6
console.log(/^哈*$/.test('')) //true
console.log(/^哈+$/.test('哈')) //true
console.log(/^哈?$/.test('哈')) //true
console.log(/^哈{3}$/.test('哈哈哈')) //true
console.log(/^哈{3,}$/.test('哈哈哈哈')) //true
console.log(/^哈{3,6}$/.test('哈哈哈哈哈哈')) //true
console.log(/^哈*$/.test('哈哈哈哈')) //true
console.log(/^哈+$/.test('')) //false
console.log(/^哈?$/.test('哈哈')) //false
console.log(/^哈{3}$/.test('哈哈哈哈')) //false
console.log(/^哈{3,}$/.test('哈')) //false
console.log(/^哈{3,6}$/.test('哈哈哈哈哈哈哈'))//false
3. 字符类的
1. []
// 字符类 [] 里面加上 - 字符 - 字符代表一个范围
// [^ ] 这个代表除了
// ^ $ 一个正则里面只要添加这两个个就代表只能有一个
console.log(/^[a-zA-Z0-9]{2}$/.test('a9'))
console.log(/^[^a-z]$/.test('a')) //除了a-z的 这个返回false
^ 取反
. 只找换行符以外的任何单个数字
预定义类
修饰符
1. i (不区分大小写) g 全局的意思
2. replace 替换字符
// 修饰字符 i 代表不区分大小写的查找 g 代表全局查找
// 替换字符 str.replace(/要被替换掉的字符找到他/,'即将替换成的字符')
const str = 'java是一门编程语言,我喜欢JAVA,我爱java'
const res1 = str.replace(/java/,'前端') //只找第一个 前端是一门编程语言,我喜欢JAVA,我爱java
console.log(res1)
const res2 = str.replace(/java/g,'前端') //全局查找 前端是一门编程语言,我喜欢JAVA,我爱前端
console.log(res2)
const res3 = str.replace(/java/ig,'前端')//g全局查找 前端是一门编程语言,我喜欢前端,我爱前端
console.log(res3)
const res4 = str.replace(/java|JAVA/g,'前端')//g全局查找 前端是一门编程语言,我喜欢前端,我爱前端
console.log(res4)
以下是常用的一些正则
-
手机号验证 /^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/
-
验证码验证 /^\d{6}$/
-
用户名 /^[a-zA-Z0-9-_]{6,10}$/
-
密码 /^[a-zA-Z0-9-_]{6,20}$/
-
classList.contains()
看看有没有包含某个类,如果有则返回true,么有则返回false