• javascript 正则表达式 g 的相关资料


    在编写代码的时候出现莫名的错误,如下:

    var regNum = /^\d+$/g; 
    
    regNum.test("344"); // 返回true
    
    //regNum = /^\d+$/g; //加上此段代码,下面测试一定返回true
    regNum.test("344"); // 返回false,期待返回true
    
    //regNum = /^\d+$/g; //加上此段代码,下面测试一定返回true
    regNum.test("344"); // 返回true
    
    //以上测试数据“344”可以替换成任意数字,可以看到返回结果为true,false,true,false,true....这样反复的结果
    

       

    同样的代码返回不一样的结果,实在是汗颜+郁闷,测试了半天突然醒悟是不是表达式就已经写错了。

    网上找资料发现表达式是没有问题,问题出现对“g” 的理解上。

    以前一直以为“g” 表示全局匹配只针对当前字符串(实际上也针对正则表达式),结果正则文档上的说明是:每次匹配一次都会返回 

    lastIndex值,并且作为全局变量保存(这句是我的理解),也就是当匹配第二个字符串的时候,起始地址已经不是0了,而是上一次匹配结果的index值。
     
     
  • 相关阅读:
    Spring 框架学些(二)Spring AOP
    Spring框架学习(一)
    java spring框架的HelloWord
    Windows下查看进程执行参数
    js的code标签显示插件
    初接触hbase数据库
    gpg加密使用
    .net core全球化配置、使用
    CSS添加本地字体
    2011年NOIP普及组复赛题解
  • 原文地址:https://www.cnblogs.com/liumang/p/1963764.html
Copyright © 2020-2023  润新知