Regular 正则
什么是正则
正则是一个规则,用来处理字符串的规则
正则匹配
编写一个规则,验证某个字符串是否符合这个规则,正则匹配使用的是 test 方法
正则捕获
编写一个规则,在一个字符串中吧符合规则的内容捕获取到,正则捕获使用的方法: 正则的 exec 方法、字符串的 split 方法、字符串的 split 、replace 、match 等方法都支持正则
正则的简单语法
let reg = /^$/; // 两个斜杆中间包含一些内容就是正则,两个斜杆之间包含的全部内容就是元字符
正则的元字符和修饰符
任何一个正则都是由元字符和修饰符组成
修饰符(img)
- g (gloal)
全局匹配
- i (ignoreCase)
忽略大小写匹配
- m (multiline)
多行匹配
元字符
量词元字符
- + 让前面的元字符出现
一到多次
- ? 让前面的元字符出现
一次
- * 让前面的元字符出现
零到一次
- { n } 让前面的元字符出现
n次
- { n, } 让前面的元字符出现
n到多次
- { n, m } 让前面的元字符出现
n到m次
- + 让前面的元字符出现
特殊意义的元字符
- 转义字符, 把一个有意义的字符转换为普通字符, 或者将一个普通字符转换为特殊字符
- . 除了
- d 匹配一个
0-9
之间的数字 - D 匹配任意一个
非 0-9
之间的数字 - w 匹配一个
0-9或者字母或者_
之间的字符 - s 匹配一个任意
空白
字符 - 匹配一个
边界
符 - x | y 匹配
x 或者 y
中的一个 - [ a-z ] 匹配
a-z
中的任意一个 - [ ^ a-z ] 匹配任意一个
非 a-z
的字符 - [xyz] 匹配
xyz
中的一个字符 - [^xyz] 匹配 任意一个
非xyz
中的字符 - () 正则的小分组,匹配 一个小分组
- ^ 以某
一个元字符开始
- $ 以某
一个元字符结束
- ?: 只匹配不捕获
- ?= 正向预查
- ?! 反向预查
除了以上的特殊元字符和量词元字符,其余的都叫普通元字符: 代表本身意义的元字符 (abc...)
- g (gloal)
元字符代码详解
d
let reg = /d+/; let str = 'demo200demo'; reg.test(str); // true
let reg = /^d+/;
let str = 'demo202';
reg.test(str); // falselet reg = /^d+$/;
let str = '123dempo13w2';
reg.test(str); // falselet reg = /^2.3$/;
reg.test('2.3'); // true// 将其转换为普通字符
let reg = /^d$/;
reg.test('d'); // false
reg.test('d'); // false
reg.test('d'); // truelet reg = /^\d$/; // d
reg.test("