zoukankan      html  css  js  c++  java
  • 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值。
     
     
  • 相关阅读:
    windows常用命令行总结
    express安装
    MySQL去除外键关联关系
    c#实体转化
    C#之Clone
    mysql 将null转代为0(转)
    Mysql显示行号
    mysql存储过程游标加计划任务事件调度器
    mysql临时表
    Git学习笔记
  • 原文地址:https://www.cnblogs.com/liumang/p/1963764.html
Copyright © 2011-2022 走看看