正则是对字符串的合法性进行校验,在正则看来所有内容都是字符串
学习正则表达式就是学习它的元字符
使用//定义正则表达式: let ref = /正则表达式/
校验方法: 正则表达式.test(字符串),返回true/false
正则创建的建议
先占位后修饰
- 修饰不能单独存在
从左到右写
边界符
作用:限定匹配的字符的长度
表现形式: /^表达式$/
元字符
占位符
-
说明这里需要一个指定类型的字符
- 数字
- 大写字母
- 小字字母
- 空字符
- 下划线
- 其它字符
-
\d:代表一个数字: 0 1 2 3 4 5 6 7 8 9
- 【0-9】
-
\w:匹配一个合法字符,合法字符有: 0-9 a-z A-Z _
- 【0-9A-Za-z_】
-
\s:匹配一个空字符,空字符是指看不见内容的字符,如 空格,制表位 ,换行符
-
\S:匹配一个非空字符
-
\D:代表一个非数字
-
\W:代表一个非法字符
-
[指定的字符范围]:匹配指定的范围中的某一个字符
-
.:代表任意的一个字符
修饰符--量词
- 作用:修饰前面的字符所出现的次数
- *:修饰前面的字符出现任意次
- +:修饰前面的字符出现一次或多次
- ?:修饰前面的字符出现0次或1次
- {n}:修饰前面的字符出现n次
- {n,m}:修饰前面的字符最少出现n次,最多m次
- {n,}:修饰前面的字符最少出现n次,最多 没有限制
转义:\
将元字符当成普通字符来处理
改变优先级:()
常用方法
test:进行匹配验证
replace:替换
-
是字符串的方法,只不过方法可以传递正则表达式做为参数
-
g表示全局匹配:匹配全部的内容
-
let str = '23141241324123423112' // 将里面的1全部干掉---将1替换为'' let reg = /1/g // g全局,匹配所有
str = str.replace(reg, '') // str = str.replaceAll(reg, '') console.log(str)
exec
-
侧重是匹配之后的字符串提取
-
调用这个方法如果成功返回一个数组,否则返回null
-
提取:如果想提取字符串,就将你想提取的字符串的正则表达式部分,使用()包含
-
let email = 'wuhu0723@126.com'
let reg = /^(\w{1})(\w+)[@]((\w+)[.](\w+))$/ let obj = reg.exec(email) console.log(obj)