「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」
JS-正则表达式
对字符串进行匹配运算的内置对象
(1)表达式:对字符串进行逻辑匹配运算
(2)内置对象:js语言提供好的内置对象,存储一些对字符串进行匹配运算的方法
1.正则表达式的作用:
对字符串进行逻辑匹配运算(格式校验)
2.使用流程:
1.声明正则对象:let reg = New ReExp(/正则表达式/)
2.调用对象test()方法
reg.test(‘要校验的字符串’)
true:符合规则
false:不符合
3.语法由两部分组成
1.原义文本字符:字符串本身的含义
2.元字符:改变了字符串 本身的意义
[] {} () . \ + ? * ^ $ |
-
[ ]:字符类:将某种特征的字符归为一类
/[abc]/ :检查字符串有没有a或b或c任意一个字符
-
[^] :反向类,将不是某种特征的字符归为一类
/[abc]/ :检查字符串有没有除a或b或c的字符
-
范围类:代表字符类的范围
/[0-9]/:检测有没有数字字符
/[a-z]/:检测有没有小写字母
/[A-Z]/:检测有没有大写字母
范围类注意点:
-
可以连写
/[a-zA-Z0-9]/:检测字符串有没有字母和数字
-
范围类是一个闭区间
/[5,8]/:检测有没有5-8之间的数字,包含5和8
-
范围类:右边一定大于左边
/[8-5]/:直接报错
/[8-90-5]/:可以
4.预定义类:
\d
\s
\S
\w
\W
-
边界
-
开头边界:以xxxx开头
/^abc/:以a开头+bc(a的后面一定要是bc)
-
结尾边界:以xxxx结尾
/abc$/:ab+c(c结尾位置,前面是ab)
-
正则严格匹配
同时添加开头边界和结尾边界
/^[0-9]$/检测(开头)数字(结尾),只有0,1,2,3,4,5,6,7,8,9符合
-
-
分组
1.分组:把多个字符归为一组,用于量词
1.1 /love{3}/:含义 匹配lov+e(3次)
默认情况下量词只能对一个 字符生效
1.2/(love){3}/:含义 匹配 l +o|i ve
()和|一起可以提升|的优先级
3.反向引用:
正则表达式在匹配的时候,会自动把()内部匹配到的数据提取到RegExp的1-$9)
此时可以在替换字符串的时候,通过调整$的顺序对字符串进行反向引用(调整字符串格式顺序)