重温js——正则表达式

178 阅读2分钟

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

正则表达式是一种规则,在语法上各个语言都是一样的,有点是通用性很高,缺点是在平常开发中使用的频率并不是很高,主要使用的范围在用于判断字符串里面的规则。

语法

语法和定义变量一样,有两种:字面量模式构造函数模式

var reg1 = /规则/标志;
var reg2 = new  RegExp('规则','标志');

正则实例成员

  • global : 是否开启了全家匹配
    -

  • ignoreCase: 是否忽略大小写,和上面是一样的都是只读

  • multiline: 是否是多行匹配(只读)

  • source: 当前匹配的规则资源。(只读)
    在这里插入图片描述

  • lastIndex: 匹配的最后位置,这个对于全局匹配是很有用的。不开启全家匹配是不会有影响的,这个参数不是只读的。
    在这里插入图片描述

  • test方法: 测试某个字符串是否满足规则
    在这里插入图片描述

正则表达的匹配模式是贪婪模式,尽量匹配多一点。如果不想使用贪婪模式,在量词后面加上 ,就不会是贪婪模式

  • exec方法: 执行正则匹配,输出匹配的结果。

在这里插入图片描述

捕获组

在正则中用小括号包裹的部分,称之为捕获组。

在这里插入图片描述
捕获组还可以命名,命名的方式是在小括号里面的前面添加一个 ?<名字>,这种称为具名捕获组。
在这里插入图片描述
由于捕获组是会影响效率,有好多时候我们只是需要把括号里面当作一个整体。其实我们是不想要捕获的,使用的方式是 ?:
在这里插入图片描述

反向引用

在正则表达式中,使用某个捕获组, \捕获组编号(捕获的编号可以是名字或者是数字)

在这里插入图片描述

正向断言(预查)

检查某个字符串后面的字符是否满足某个规则,该规则不成为捕获的结果。语法是 ?=

在这里插入图片描述

负向断言(预查)

检查某个字符串后面的字符是否不满足某个规则,该规则不成为捕获的结果。语法是 ?!

在这里插入图片描述

详情查看developer.mozilla.org/zh-CN/docs/…