00:00
哈喽,大家好,这个小节咱们来介绍一下ES9正则扩展的另外一个特性就是反向断言。什么是断言呢?断这块就是判断的意思啊,在这功能就是判断我们这次的匹配结果到底是正确还是不正确。好了,我们首先先来演示一下正向断言,我来举个例子,首先我来声明一个字符串啊,字符串,然后let s tr等于一个GS啊,5211314是吧,你知道吗?呜呜呜,啦啦啦。好,这是我刻意写的这样一个字符串,现在我们有一个需求是这样子,我想把里边的数字提取出来。而且呢,这个数字呢,我只想提取后边这个,但是呢,我不想提取前边这个。当然同学可能会说啊,那不简单,我直接把这个五五取出来,555取出来不就可以了吗?啊,这要注意啊,现在你看起来这是一个静态的,但是呢,在很多场景下面,它是一个动态结果。
01:06
啊,所以说这里千万不要想成固定死的,你要把它想成是一个变化的数字。好,那么我想提取这个这个数字呢,我可以根据后边的啊,根据这个数字后边的内容来去做一个判断。你可以看一下啊,这是一个数字,前面这儿呢,也是满足条件也是数字啊,但是呢,你看这啦啦啦是吧,和这个你知道吗?它是不一样的,所以我可以根据啦啦啦这个标志来去啊,对我们的匹配结果做一个啊这样的区分,好写一下政策,Cost reg等于一个先写正则啊来杠D加。啊,我们我们可以呢,匹配这个数字,然后后边这个位置呢,是啦啦啦好,我把这个拉取过来。注意,我们只想匹配数字。啊,只想匹配数字,所以说在这里,哎,我们可以用这样一个语法,就是问号等于的方式。
02:08
来做一个这样的啊判断,就是我们要判断啊,你是刚地来对不对,我还要判断你后边这个是不是拉啊,如果是拉的话,前面这个满才满足条件,如果说你要是不是拉,对不起,前面这个数字不满足条件,好了看一下结果cost result等于一个is tr。好,然后consult log打印一下result保存切过来,然后大家来看看这个结果。然后呢,刷新点开看这这个数字555就来了啊,这就是我们所说的正向断言。正向断言,我可以根据当前这个匹配的后边内容来去判断我前边这个内容到底是不是合法的。
03:00
啊,这是不是满足条件的好,这是正向断言,那么另外一个呢,是嗯,就是反向断言啊,反向断言,反向断言的意思就是说我可以呢,根据前边的内容。啊,根据前边的内容来去做一个这样的判断,还是一样子啊,我们现在还是想提取这个555。啊,还是想提取这个五五啊,然后呢,但是你看前面这个也是满足条件的,如果是光加杠D加的话啊,光加这个杠D加,那前面这个也满足条件,那这样的话呢,你的五五根本就提取不到啊,不行的话,我来给你演示一下啊cost rig等于一个,然后杠D加啊然后下边cost result等于reg.EXE,然后str保存。你可以看结果轮不到你啊,这个五五根本轮不到,因为前面这个就已经满足条件返回了,所以说这个时候不行,那咱们怎么办呢?诶别急,我们可以这样子用一个语法,你看我这个五前边是知道吗。
04:06
但是你5211314这块呢是GS,所以说我可以用这个摸字。啊来去做一个啊,做一个识别,做一个判断,好来一个问号,注意啊,这是固定语法问号,然后小于等于,然后把这个么放上。就是判断的这个数字前边到底是不是摸这个字,如果是好,你满足条件啊,满足条件,那如果说你不是摸这个字,那对不起,你这个不满足条件好来看结果切过来。你看刚才还是5211314,我只要加了一个反向断言这样一个语法啊,这个结果就发生了变化,成了555了啊,这就是断言可以根据啊目标的内容的前边和后边来对它做一个唯一性的识别。啊,做一个唯一性的识别,是这样的一个作用,好了这个小节我们就先到这儿。
我来说两句