当前位置:首页 > 日记 > 正文

Javascript首次使用正则测试()是true,第二次是false。

Javascript首次使用正则测试()是true,第二次是false。
1。前言

今天,我的朋友问了我一个问题。现在我需要多次匹配相同的内容,但是为什么我第一次匹配true,而第二个匹配是错误的呢
VaR S1 =MRLP ;
VaR S2 =MRLP ;
VaR reg = / / IG MRLP;
console.log(reg.test(S1));
console.log(reg.test(S2));
这时,您会发现,当我们使用其他正则字符串的正则匹配字符串时,第一个匹配是true,第二个匹配是false。

等等,为什么我的比赛,我还特别加入MRLP,我不区分大小写,为什么它可以被匹配的第一次,第二次不

这就是我要告诉你,今天在JS约lastIndex。

2。lastIndex

在开始解释之前,首先简要回顾一下正则表达式在JS中使用的方式。

在js中使用正则表达式有两种方法:

第一种是正则表达式对象的方法,有两种常用的方法。

检索字符串中指定的值。返回找到的值并确定其位置。
测试(STR):检索字符串中指定的值。返回true或false

第二个是String对象的方法,有四种常用的方法。

匹配(正则表达式):找到一个或多个正则表达式匹配
取代(正则表达式):替换与正则表达式匹配的子串
搜索(正则表达式):检索值的正则表达式匹配
拆分(搜索):将字符串拆分为字符串数组。

什么方法都与lastIndex我们今天说的吗

的lastIndex属性用于指定下一场比赛的开始位置。

最后比赛的结果是由法RegExp.exec发现()和()regexp.test。他们占据了所有的位置被lastIndex属性为出发点下检索。

这样,字符串中所有匹配的文本都可以通过反复调用这两种方法来遍历。

需要注意的是,这个属性只能通过设置标志G来使用。

既然你知道了这件事的原因,解决起来就很简单了。

三.解决方案

3.1第一解

正如上面提到的,我们的lastIndex属性必须设置为使用G标签。

因此,当我们匹配时,我们可以根据情况直接删除g标签。
VaR S1 =MRLP ;
VaR S2 =MRLP ;
VaR reg = / /我MRLP;
console.log(reg.test(S1) / /真实);
console.log(reg.test(S2) / /真实);
3.2第二解

很多时候,我们必须执行全局匹配(G),我们不能在第一时间使用第一个匹配。

事实上,我们的lastIndex属性是可读可写。

只要目标字符串的下一次搜索开始,就可以设置它。

当方法exec()或测试()不再能找到匹配的文本,他们自动复位的lastIndex属性0。

这样,当我们再次执行全局匹配时,就不会出现错误的情况。
VaR S1 =3206064928:MRLP:3206064928;
VaR S2 =MRLP ;
VaR reg = / / IG MRLP;
console.log(reg.test(S1) / /真实);
console.log(Reg。lastIndex); / / reg.lastindex = 15
reg.lastindex = 0; / /我将被重置为0 lastIndex
console.log(reg.test(S2) / /真实);
谢谢你的阅读。我希望你能帮助你,谢谢你对这个站的支持。

相关文章

MySQL可以有一个类似于Oracle函数N

MySQL可以有一个类似于Oracle函数N

函数,类似于,有一个,电脑软件,MySQL,使用ifnull,不空 Isnull是判断是否为空,返回值为1表示零或0不空 ifnull相当于甲骨文的NVL,使用如下 MySQL >选择ifnull(1,10); -------------- + + | ifnull(1,10)| -------------- + + 1 | | ---------…

梅赛德斯奔驰概念跑车绘制过程分解

梅赛德斯奔驰概念跑车绘制过程分解

绘制,解图,梅赛德斯奔驰,跑车,过程,今天,我们分享奔驰跑车概念图的流程分解图,教程很不错,值得学习,推荐给大家,看看! 本教程结束,以上是奔驰跑车概念图的流程分解图,操作非常简单,希望对您有所帮助!…

利用PS图象处理软件在细节纹理的U

利用PS图象处理软件在细节纹理的U

纹理,图象,处理软件,细节,电脑软件,这个例子介绍了用ps在空中画一个浮动的U盘。本教程使用的详细步骤说明U盘和光与影的表面纹理的制作过程。注重U盘的实例在地板上的投影,和PSDTUTS的话很容易做,但这些小细节会让你更真实的东西。 在本教程…

与PS图象处理软件的字体光冷

与PS图象处理软件的字体光冷

字体,图象,处理软件,电脑软件,PS,今天萧边分享光的生产方法与PS图象处理软件酷字体的教程,非常好,值得学习,好吧,让我们来看看! 步 首先,我们用鼠标左键双击桌面上的快捷按钮打开PS图象处理软件和PS图象处理软件,如图中所示的界面。 然后,我们需…

PS图象处理软件制作逼真的云

PS图象处理软件制作逼真的云

逼真,图象,处理软件,电脑软件,PS,设计素描 打开原始图片(上图左),虚化前景的云的回忆,我忍不住想添加一些云彩,描绘了自由流动的感觉。让我们一起努力。 第一步:优雅的云彩 我们首先打开源文件cloud.jpg,在窗口点击;;具有V、;;通道;;通道、调色板;复制;…

PS图象处理软件出美丽的紫丁香

PS图象处理软件出美丽的紫丁香

紫丁香,图象,处理软件,美丽,电脑软件,本教程的重点是对皮肤和皮肤颜色的字符。使用尽可能轻的色调,使它能够更好地突出人物的晶体色彩,使人物看起来更可爱。 最终效果 原 1,打开原材料,创建曲线调整图层,调整RGB和蓝色通道,参数如图1所示,效果如…

ppt如何对齐文本框架教程PPT高级教

ppt如何对齐文本框架教程PPT高级教

教程,文本,对齐,框架,高级,做幻灯片PPT时,遇到多个文本框的对象可以对齐,如果粗、简单的排版可以用鼠标手动移动。这个质量不高,PPT不能随便,下面下面的小编告诉你PPT文本框的对齐方法。 一种PPT对齐文本框的方法 例如,有四行排版凌乱的文本框…

javascript实现鼠标单击页面移动div

javascript实现鼠标单击页面移动div

鼠标,单击,页面,电脑软件,javascript, 移动/ / /方式 无功chomove = false; 是否绑定单击 无功isclick =真; div参考 无功odiv = null; 输入输入/引用 无功oinput = null; 公共对象事件绑定包 无功evnetutil = { { AddEventHandle:功能(oelement,e…

CDR设计2015新年快乐海报

CDR设计2015新年快乐海报

海报,新年,快乐,电脑软件,CDR,2014将要过去,这将是2015只羊的年。今天我要向大家解释2015的新年快乐。 方法 1,首先,我们在计算机桌面上找到CDR软件,然后点击CDR软件。 2、当{ }打开CDR软件,我们点击mdash;mdash;文件mdash;mdash;一个合适的大小,建…

使用TeraCopy软件快速复制文件

使用TeraCopy软件快速复制文件

复制文件,快速,电脑软件,TeraCopy,今天,当文件大小是GB级别时,使用Windows系统的内置文件复制功能传输文件常常效率低下,效率低下,尤其是当文件复制操作突然中断时,先前复制的副本的内容可能会消失。不幸的是,当用户遇到这样的问题,用户可以只复制…

让傲游和IE分离剂

让傲游和IE分离剂

傲游,电脑软件,问:由于需要,我有一个网站使用特定的代理服务器登录,但在伊江的代理服务器设置中,傲游也跟着使用了这个代理,导致很多其他网站不正常打开。 答:打开傲游浏览器,按Alt + F按钮打开菜单,选择代理点,选择不使用代理或选择管理,输入更详细…

如何破解密码的基础和Excel

如何破解密码的基础和Excel

密码,破解,基础,电脑软件,Excel,很多用户为了保护办公文件的内容,将添加一个密码,使用的时候很麻烦;或者你不小心把Excel2007密码忘了,不要用他最后的方法文件,让萧边为你带来Excel2007密码。 打破Excel2007密码步骤: 在Excel2007文件编辑XML文…