JavaScript 正则表达式中global模式的特性

返回 Boolean 值,指出正则表达式使用的global 标志 (g) 的状态。默认值为 false。只读。 rgExp.global 必选项 rgExp 参数是正则表达式对象。 如果正则表达式设置了global 标志,那么global 属性返回 true,否则返回 false。 使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一个。这也被称为全局匹配。

一直不是很清楚javascript的global到底表现在哪些方面,所以今天特地做了几个测试:

var str = 'bbaaabb',
  reg = /^b|b$/;
  while(reg.test(str)){
    str = str.replace(reg,'');
    console.log(reg.lastIndex + ":" + str);
  } 

最终结果:

//0:baaabb
//0:aaabb
//0:aaab
//0:aaa 

但是如果稍做一些修改

var str = 'bbaaabb',
  reg = /^b|b$/g;
  while(reg.test(str)){
    str = str.replace(reg,'');
    console.log(reg.lastIndex + ":" + str);
  } 

最终结果则是:

//0:baaab
//0:aaa 

这样的结果说明,global模式下,在匹配到了开始的b字符后,还将继续匹配结尾的b字符,从而忽视掉中间"|"操作符。

JavaScript 正则表达式中global模式的特性就给大家介绍这么多,希望对大家有所帮助!

(0)

相关推荐

  • js正则表达式讲解之index属性(RegExp对象)

    功能:index与search返回的值相同,不管是是否匹配到合适内容,如果找到合适内容则index为匹配内容其实字符的起始位置,如果没有找到则返回-1 基本语法RegExp.index 注意:该属性也是RegExp的静态属性,调用方式固定. 复制代码 代码如下: <html> <script language="javascript" type="text/javascript"> //alert('Designed By Androidyu

  • JS中使用正则表达式g模式和非g模式的区别

    先给大家说下js正则表达式中的g到底是什么意思 g是global的缩写啊! 就是匹配全部可匹配结果, 如果你不带g,在正则过程中,字符串是从左至右匹配的,如果匹配成功就不再继续向右匹配了,如果你带g,它会重头到尾的把正确匹配的字符串挑选出来 例如: var str = 'aaaaaaaa' var reg1 = /a/ var reg2 = /a/g str.match(reg1) // 结果为:["a", index: 0, input: "aaaaaaaa"]

  • JS正则表达式修饰符global(/g)用法分析

    本文实例讲述了JS正则表达式修饰符global(/g)用法.分享给大家供大家参考,具体如下: /g修饰符代表全局匹配,查找所有匹配而非在找到第一个匹配后停止.先看一段经典代码: var str = "123#abc"; var noglobal = /abc/i;//非全局匹配模式 console.log(re.test(str)); //输出ture console.log(re.test(str)); //输出ture console.log(re.test(str)); //输出

  • JavaScript正则表达式exec/g实现多次循环用法示例

    本文实例讲述了JavaScript正则表达式exec/g实现多次循环用法.分享给大家供大家参考,具体如下: var x = "a.xxx.com b.xxx.com c.xxx.com"; 希望得到 ["a","b","c"] 这三个结果 1. 正则需要 添加 g 2. exec 循环,直到返回空 代码如下,会输出 a b c var x = "a.xxx.com b.xxx.com c.xxx.com";

  • js正则表达式之input属性($_)RegExp对象属性介绍

    功能说明:该属性为RegExp的静态只读属性,该属性的值为与RegExp对象所描述的正则表达式进行匹配检测的字符串,该属性也可以表示成$_ 复制代码 代码如下: <html> <script language="javascript" type="text/javascript"> //objStr 为待匹配的内容 var objStr='abcDdefCDDE'; //创建正则表达式,i表示匹配忽略大小写 var re=/cd+e/i;//

  • javascript正则表达式参数/g与/i及/gi的使用指南

    regularexpression=/pattern/[switch] 这个switch就有三种值 g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写 JScript 语言参考 -------------------------------------------------------------------------------- 后向引用 正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用这一能力.请回想一下,对一个正则表达式模式或部分模式两边添加圆

  • JavaScript 正则表达式中global模式的特性

    返回 Boolean 值,指出正则表达式使用的global 标志 (g) 的状态.默认值为 false.只读. rgExp.global 必选项 rgExp 参数是正则表达式对象. 如果正则表达式设置了global 标志,那么global 属性返回 true,否则返回 false. 使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一个.这也被称为全局匹配. 一直不是很清楚javascript的global到底表现在哪些方面,所以今天特地做了几个测试: var

  • javascript正则表达式中分组详解

    之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达式中的分组.如果你对JS正则表达式不够理解 可以点击这里了解更多. 分组在正则中用的还是比较广的,我所理解的分组 就是一对括号() ,每一对括号 就代表了一个分组, 分组可以分为: 捕获性分组 非捕获性分组 捕获性分组 捕获性分组会在 比如 match exec这样的函数中以第二项,第三项的形式得到相应分组的结果.先来看一个

  • 盘点javascript 正则表达式中 中括号的【坑】

    在javascript中使用正则时需要注意中括号里边的一个坑,那就是中括号内的元字符问题.自己踩到坑了,网上搜了一下还有不少人踩了这个坑,所以大概说一下. 中括号在正则中称为字符组(Character class),有的书翻译为字符类,还有的翻译成字符集.我觉得字符组更好点,毕竟class在计算机属于中代表面向对象里的"类".顾名思义,字符组为一组字符,它表示在一个位置里可能出现的多种字符.注意这里强调只匹配一个位置哦.(此段摘自-http://www.cnblogs.com/snan

  • 详解JavaScript正则表达式中的global属性的使用

    global是正则表达式对象的只读布尔属性.它指定是否一个特定的正则表达式进行全局匹配.否则它使用"g"属性创建. 语法 RegExpObject.global 下面是参数的详细信息: NA 返回值: 如果"g"修改被设置返回"TRUE",否则返回"FALSE". 例子: <html> <head> <title>JavaScript RegExp global Property</t

  • JavaScript正则表达式中g标志详解

    目录 缘起 解密过程 搜索引擎 源码层面 结论 缘起 有一天在思否社区看到有个问题,大致描述如下 const list = ['a', 'b', '-', 'c', 'd']; const reg = /[a-z]/g; const letters = list.filter(i => reg.test(i)); // letters === ['a', 'c']; // 如果正则不使用`g`标志可以得到所有的字母 // 为什么加入`g`之后就不可以了 对问题而言,遍历中的i就是一个字符,不需要

  • javascript正则表达式中的replace方法详解

    前面的文章我已经介绍了正则的四个基本方法,当时也提到过replace方法 我们来回顾一下replace方法的使用: 先定义一个正则对象:var re=/中间写匹配的条件/; replace():正则匹配字符串,若是匹配成功,将匹配成功的字符串用新的字符串来替换 语法:字符串.replace(re,新的字符串): 举个例子:网络中经常会遇到,不文明的词会被*代替,我们来试一下: <!DOCTYPE> <html> <head> <meta charset='utf-

  • JavaScript正则表达式中的ignoreCase属性使用详解

    ignoreCase是正则表达式对象的只读布尔属性.它指定是否一个特定的正则表达式执行不区分大小写的匹配.,它与"i"属性创建. 语法 RegExpObject.ignoreCase 下面是参数的详细信息: NA 返回值: 如果"i"修改被设置返回"TRUE",否则返回"FALSE". 例子: <html> <head> <title>JavaScript RegExp ignoreCase

  • JavaScript编程中实现对象封装特性的实例讲解

    1.prototype对象 1.1构造函数的缺点 JavaScript通过构造函数生成新对象,因此构造函数可以视为对象的模板.实例对象的属性和方法,可以定义在构造函数内部. function Cat (name, color) { this.name = name; this.color = color; } var cat1 = new Cat('大毛', '白色'); cat1.name // '大毛' cat1.color // '白色' 上面代码的Cat函数是一个构造函数,函数内部定义了

  • javascript正则表达式中参数g(全局)的作用

    我们详细描述: 1)对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行第二个匹配,依次类推.例如: 复制代码 代码如下: var regx=/user\d/; var str="user18duser2dsc"; var rs=regx.exec(str);//此时rs的值为{user1} var rs2=regx.exec(str);//此时rs的值依然是{user1} 如果regx=/user\d/g

  • 正则表达式教程之模式修正符使用介绍

    之前我们给大家介绍了正则表达式中的定界符.原子和元字符,那么我们关于正则表达式教程的基本语法就剩下了正则表达式中的模式修正符.本节会向大家介绍模式修正符的概念.模式修正符的构成,以及结合实例的模式修正符的演示,大家在学习完本节内容之后,就完全可以读懂正则表达式了. 什么是模式修正符? 1, 模式修正符就是几个字母,我们在每个正则表达式中可以一次使用一个,也可以连续使用多个,每一个具一定的意义. 2, 模式修正符是对整个正则表达式调优使用,也可以说是对正则表达式功能的扩展. 还记得正则表达式的那个

随机推荐