美文网首页
JavaScript中误用/g导致的正则test()无法正确重复

JavaScript中误用/g导致的正则test()无法正确重复

作者: praycis | 来源:发表于2018-05-17 18:34 被阅读0次

这个问题实际上是/g导致的,而此时也才发现,实际上这个正则我误用了一个/g.因为/g代表全局匹配,所以判断正则时内部是有一个lastIndex来记录最后匹配的位置.当重复调用的时候,会接着上次的lastIndex继续匹配,故而将导致判断出错.明白了原理解决起来也就很明了了:
1.去掉/g,在不需要/g的情况下不要随意添加/g标识
2.第二次匹配前,手动将lastIndex置0,以上面的例子来说:reg.lastIndex()=0即可.

相关文章

  • JavaScript中误用/g导致的正则test()无法正确重复

    这个问题实际上是/g导致的,而此时也才发现,实际上这个正则我误用了一个/g.因为/g代表全局匹配,所以判断正则时内...

  • 第六周第四天笔记

    1. 验证正则表达式中的全局g对几种方法的影响 test校验方法:正则的方法总结:1)不添加全局g时,lastIn...

  • 简述test()、match()、replace()和searc

    如果你使用过Javascript中的正则表达式,那么你对test()、match()、replace()和sear...

  • 正则,UI

    new RegExp 全文搜索 /内容/ g 全文搜索 1、test 用法:正则.test(字符串) 匹配成功,就...

  • RegExp类型

    JavaScript高级程序中对正则的介绍很浅,正则匹配可以很强大 标志 g:全局搜索 i:忽略大小写 m:多行搜...

  • JavaScript正则表达式全解

    正则表达式 reg.test(str) 模式 i 使用构造函数创建正则表达式 模式 g g 表示全局匹配 str....

  • 2018-05-09 正则随笔

    re.S对应正则中.忽略换行影响,没有会导致无法匹配换行的内容。

  • 前端表单验证常用的15个JS正则表达式

    在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的javaScript正则表...

  • Perl 去掉指定字符

    去掉字符串中的* $test = "acc";$test =~ s/*//g;print $test; #acc

  • js正则

    正则表达式中的test 和exec方法 RegExp.prototype.test(str); 测试字符串中是否含...

网友评论

      本文标题:JavaScript中误用/g导致的正则test()无法正确重复

      本文链接:https://www.haomeiwen.com/subject/sldidftx.html