正则表达式的创建
const 变量名=/正则表达式/
正则表达式的两个方法
1.匹配:验证字符串是不是符合规则
正则.test(要匹配的字符串)
符合返回true,反之返回false;
2.捕获:从字符串中获取符合规则的那一部分字符串
正则.exec(要获取的字符串)
没有符合的字符串:返回Null;
有符合的字符串:
1.基础捕获:返回一个数组,不管有多少个片段都从第一个开始捕获,不管捕获多少次都只返回第一次捕获的片段
2.有()时,返回一个数组,分别是小括号的单独捕获
3.有全局标识符时,匹配或者捕获的时候只找第一个;第二次捕获从第一次捕获的结束位置开始;如果找不到就返回Null,再后面一次又回到开头开始捕获
- 返回一个数组
- [asd]是捕获出来的片段
- 只捕获第一组符合的片段
元字符
- \s表示一个空格
- \S表示一个非空格
- \t表示一个制表符(与空格区别)
- \d表示一个数字
- \D表示一个非字符
- \w表示数字字母下划线三选一
- \W表示非数字字母下划线
- (.)表示字符串里要有一个非换行内容
- ^表示以 开头( ^\d 表示以字母开头)
- $表示以 结尾
- (^\d$ )表示以数字开头然后结束,只存在一个数字
限定元字符(只修饰前面一个字符)
- *表示存在多个0~多个组成的片段
- +表示出现1~多个
- ?表示出现0~1次
- {n}表示出现n次
- {n, }表示出现n到多次
- {n,m}表示出现n到m次
正则的贪婪和非贪婪
- 贪婪:在捕获的时候尽量捕获最多
- 非贪婪:在表达式后家一个?,以最少标准捕获
正则的特殊字符
- ()1.表示整体 2.表示单独捕获(从左到右每个小括号依次是数字里从[1]开始的内容)
- (?:)表示整体匹配但不捕获
- /占位或,表示前面的或者后面的符合匹配结果
- [ ] 表示括号里面任意一个都行
- [^]表示任意一个非括号里的都行
- - 表示从一个字符到另一个字符,ASCII码必须是连续的,与[]连用
正则的标识符
- i 表示忽略大小写
- g 表示全局 匹配或者捕获的时候只找第一个;第二次捕获从第一次捕获的结束位置开始;如果找不到就返回Null,再后面一次又回到开头开始捕获
- y 表示粘性全局 第一次捕获必须从索引0开始就拿到对应结果,第二次必须是从第一次结束位置开始
表示方法:在正则表达式后面添加
new RegExp(‘abcd’,‘igy’)