• 技术文章 >web前端 >js教程

    javascript学习笔记(十二) RegExp类型介绍_基础知识

    2016-05-16 17:52:36原创395
    1.匹配模式标记:
    g ------ 表示全局模式,而不是发现第一个匹配成功就立刻结束
    i ------- 表示不区分大小写模式
    m ----- 表示多行匹配,一行结束时向下一行继续匹配
    复制代码 代码如下:

    //匹配第一个bat 或cat,不区分大小写
    var pattern1 = /[bc]at/i
    var pattern2 = new RegExp("[bc]at","i"); //同上

    使用RegEXp是字面量模式要转换成字符串
    /\[bc\]at/ =======> "\\[bc\\]at"
    /\.at/ ==========> "\\.at"
    /name\/age/ ======> "name\\/age"
    /\d.\d{1,2}/ ======> "\\d.\\d{1,2}"
    /\w\\hello\\123/ ====>"\\w\\\\hello\\\\123

    2.RegExp实例属性
    global —— 布尔值,表示是否设置了g 标志
    ignoreCase —— 布尔值,表示是否设置了i 标志
    multiline —— 布尔值,表示是否设置了m 标志
    lastIndex —— 整数,表示开始搜索下一个匹配项的位置
    source —— 字面量形式的字符串
    复制代码 代码如下:

    var pattern2 = new RegExp("\\[bc\\]at","i");
    alert(pattern2.source); //"\[bc\]at"

    3.RegExp实例方法
    exec()方法 接受一个参数,即应用正则表达式的字符串,
    返回数组和两个属性index和input,数组第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串
    复制代码 代码如下:

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

    var matches = pattern.exec(text);
    alert(matches.index); //0
    alert(matches.input); //"mom and dad and baby"
    alert(matches[0]); //"mom and dad and baby"
    alert(matches[1]); //" and dad and baby"
    alert(matches[2]); //" and baby"

    非全局模式时每次调用exec()返回的都是第一次匹配的项
    全局模式时每次调用ecec()返回字符串的下一个匹配项,lastIndex的值会增加

    test()方法 接受一个参数,即应用正则表达式的字符串,匹配返回 true 否则返回 false
    复制代码 代码如下:

    var text = "000-00-0000";
    var pattern = /\d{3}-\d{2}-\d{4}/;

    if (pattern.test(test)) {
    alert("匹配!");
    }

    4.RegExp 构造函数属性
    复制代码 代码如下:

    var text = "this has been a short summer";
    var pattern = /(.)host/g;

    if (pattern.test(text)){
    alert(RegExp.input); //this has been a short summer 最近一次要匹配的字符串,等价于RegExp.$_ ,opera不支持
    alert(RegExp.lastMatch); //short 最近一次的匹配项,等价于RegExp["$&"] ,opera不支持
    alert(RegExp.lastParen); //s 最近一次匹配的捕获组,等价于RegExp["$+"] ,opera不支持
    alert(RegExp.leftContext); //this has been a 匹配项前的文本,等价于RegExp["$`"]
    alert(RegExp.rightContext); // summer 匹配项后的文本,等价于RegExp["$‘"] ,
    alert(RegExp.multiline); //false 是不是多行模式,等价于RegExp["$*"] ,opera和IE都不支持
    }

    RegExp.$1 …… RegExp.$9 存储捕获组
    复制代码 代码如下:

    var text = "this has been a short summer";
    var pattern =/(..)or(.)/g;
    if (pattern.test(text)) {
    alert(RegExp.$1); //sh
    alert(RegExp.$2); //t
    }
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:RegExp
    上一篇:javascript学习笔记(三) String 字符串类型介绍_基础知识 下一篇:javascript学习笔记(二) js一些基本概念_基础知识
    Web大前端开发直播班

    相关文章推荐

    • Angular中怎么自定义视频播放器• 聊聊V8的内存管理与垃圾回收算法• JavaScript经典基础详解之函数• 完全掌握JavaScript运行机制及原理• 你能搞懂JS的this指向问题吗?看看这篇文章

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网