zoukankan      html  css  js  c++  java
  • JS基础RegExp

    一、RegExp类型

    1、字面量法

    var expression=/ pattern /flags;

    其中模式(pattern)部分可以是任何简单或者复杂的正则表达式,每个正则表达式都可带有一个或多个标志(flags)

    g:表示全局(global)模式,将应用与所有字符串。

    i:表示不区分大小写(case-insensitive)模式,匹配字符串时忽略大小写。

    m:表示多行(multiline)模式,到达一行文本末时还会继续查找下一行中是否存在与模式匹配的项。

    /*
    *匹配字符串中所有“at”的实例
    */
    var pattern1=/at/g;
    /*
    *匹配第一个“bat”或者“cat”不区分大小写
    */
    var pattern2=/[bc]at/i;
    /*
    *匹配所有以“at”结尾的3个字符的组合,不区分大小写
    */var pattern3=/.at/gi;

     模式中使用的所有元字符都必须转义。正则表达式中的元字符包括:

    ([{\^$|)?*+.]}

    如果要匹配这些字符,就需要对他们进行转义,转义用"\"来进行

    *匹配第一个“bat”或者“cat”不区分大小写
    */
    var pattern1=/[bc]at/i;
    /*
    *匹配第一个“[bc]at”,不区分大小写
    */
    var pattern2=/\[bc\]at/i;
    /*
    *匹配所有以“at”结尾的3个字符的组合,不区分大小写
    */var pattern3=/.at/gi;
    /*
    *匹配所有“.at”,不区分大小写
    */var pattern4=/\.at/gi;

    2、构造函数法

    其中特殊字符的转义用“\\”表示

    /*
    *匹配第一个“bat”或者“cat”不区分大小写
    */
    var pattern1=/[bc]at/i;
    
    /*
    *与pattern1相同,只不过是用构造函数创建的
    */
    var pattern2=new RegExp("[bc]at","i");

    构造函数法中,对于元字符,用//进行转义

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

    二、RegExp实例属性

     RegEXp的每个实例都有下列属性

    • global:布尔值,表示是否设置了g标志。
    • ignoreCase:布尔值,表示是否设置了i标志。
    • lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0算起。
    • multiline:布尔值,表示是否设置了m标志。
    • source:正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。

    三、RegExp实例方法

    1、exec(),该方法是专门为捕获组而设计的,exec()接收一个参数,即要应用模式的字符串,然后返回包含第一个匹配信息的数组;或者在没有匹配项的情况下返回null

    var text="mom and dad and baby";
    var pattern=/mom(and dad(and baby)?)?/gi;

     2、toString()和toLocaleString()返回正则表达式字面量,与创建正则表达式的方式无关

    四、RegExp构造函数属性

    五、模式的局限性

    虽说js的正则表达式功能比较完备,但任然缺少高级正则表达式的特性,这里就不一一介绍了。

  • 相关阅读:
    第十一周课堂测试 -- 四则运算
    软件工程第十一周学习进度
    软件工程课堂测试2
    软件工程概论_课堂测试
    11.16 动手动脑
    动手动脑
    网络模型分析
    Actor模型原理
    linux下启动oracle
    Linux 环境下Oracle11g安装图文详细教程
  • 原文地址:https://www.cnblogs.com/taryn/p/5754979.html
Copyright © 2011-2022 走看看