zoukankan      html  css  js  c++  java
  • JS高级程序设计学习笔记之RegExp类型

    1. 创建正则表达式:
      1. 字面量形式定义正则表达式:

        Var expression = / pattern /flags ;pattern部分可以使任意简单或复杂的正则表达式。每个正则表达式可以带有一个或多个标志。

        标志为:①g,表示全局模式。②i,表示不区分大小写。③m,表示多行模式

        正则表达式的元字符包括:( [ { ^ $ | ? * + . } ] )。注意:模式中使用的所有元字符必须经过转义(使用 符号)。

      2. 使用RegExp构造函数:

        Var pattern = new RegExp("正则表达式","标志符")。两个参数都是字符串。有时要对字符进行双重转义,对所有的元字符都要双重转义。

      3. ECMAScript3中,正则表达式字面量始终共享一个RegExp实例,而使用构造函数创建的每一个新RegExp实例都是一个新实例。

        ECMAScript5中,规定使用正则表达式字面量必须像直接调用构造函数一样,每次创建新的实例。IE9+,FF4+,Chrome都做出了修改。

    2. RegExp实例属性
      1. global:布尔值,表示是否设置了b标志。
      2. ignoreCase:布尔值,表示是否设置了i标志。
      3. lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0算起。
      4. multiline:布尔值,表示是否设置了m标志。
      5. source:正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。
    3. RegExp实例方法:
      1. Var matches = pattern.exec(text);

        exec(),接受一个参数,即要应用模式的字符串,然后返回一个包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。

        即使设置了全局标志,每次仍只返回一个匹配项。①在不设置全局标志的情况下,在同一字符串上多次调用exec()方法将始终返回第一个匹配项的信息。②在设置全局标志的情况下,每次调用exec()都会在字符串中继续查找新的项。

        返回的数组是Array实例,但包含两个额外属性:index和input。

        Index表示匹配项在字符串中的位置。

        Input表示应用正则表达式的字符串。

        在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(如果模式中没有捕获组,则该数组只包含一项)。

      2. test()方法,接受一个字符串参数,在模式与该参数匹配的情况下返回true,否则返回false。
      3. toLocalString()与toString()返回正则表达式的字面量。
      4. valueOf()方法返回正则表达式本身。

    四、RegExp构造函数属性:P107

  • 相关阅读:
    【NOIp复习】欧拉函数
    【vijos】【神读入】Knights
    【vijos】【位运算】Miku_Nobody
    【vijos】【二分图带权匹配】拯救世界-星际大战
    【模板】KM算法模板(带注释)——二分图带权最大匹配
    【vijos】【二分图最大匹配】银翼の舞
    【vijos】【树形dp】佳佳的魔法药水
    QuartusII 13.0的完美破解
    CANVAS实现调色板 之 我的第一个随笔
    Couldn't read row 0, col -1 from CursorWindow
  • 原文地址:https://www.cnblogs.com/wangkaiyuan/p/5328838.html
Copyright © 2011-2022 走看看