javascript 学习总结(六)RegExp对象

1、正则表达式test方法

var text = "cat, bat, sat, fat";
        var pattern = /.at/;

        if (pattern.test(text)){
            alert("The pattern was matched.");
        }

2、正则的toString()方法

 var pattern = new RegExp("\\[bc\\]at", "gi");
        alert(pattern.toString());    // /\[bc\]at/gi
        alert(pattern.toLocaleString());    // /\[bc\]at/gi

3、RegExp Constructor(构造函数) Properties(属性)

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

        /*
         * Note: Opera doesn‘t support input, lastMatch, lastParen, or multiline.
         * Internet Explorer doesn‘t support multiline.
         */
        if (pattern.test(text)){
            alert(RegExp.input);               //this has been a short summer
            alert(RegExp.leftContext);         //this has been a
            alert(RegExp.rightContext);        // summer
            alert(RegExp.lastMatch);           //short
            alert(RegExp.lastParen);           //s
            alert(RegExp.multiline);           //false
        }
        input       保存被搜索的字符串
        index       保存匹配的首字符的位置
        lastIndex     保存匹配的字符串下一个字符的位置
        lastMatch     保存匹配到的字符串
        lastParen     保存最后一个被匹配的字符串(最后一个括号内的内容)
        leftContext    保存匹配字符串左边的内容
        rightContext    保存匹配字符串右边的内容
        $1~$9           保存最开始的9个子匹配(括号中的内容)
 var text = "this has been a short summer";
        var pattern = /(.)hort/g;

        /*
         * Note: Opera doesn‘t support short property names.
         * Internet Explorer doesn‘t support multiline.
         */
        if (pattern.test(text)){
            alert(RegExp.$_);               //this has been a short summer
            alert(RegExp["$`"]);            //this has been a
            alert(RegExp["$‘"]);            // summer
            alert(RegExp["$&"]);            //short
            alert(RegExp["$+"]);            //s
            alert(RegExp["$*"]);            //false
        }
        * 分为长属性名和短属性名
        * input           $_        最近一次要匹配的字符串
        * lastMatch       $&        最近一次的匹配项
        * lastParen       $+        最近一次匹配的捕获组
        * leftContext     $`        input字符串中lastMatch之前的文本
        * multiline       $*        布尔值,表示是否所有表达式都使用多行模式。
        * rightContext    $‘        input字符串中lastMatch之后的文本

4、正则$1.....$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
        }
        每当产生一个带括号的成功匹配时,$1...$9 属性的值就被修改。
        可以在一个正则表达式模式中指定任意多个带括号的子匹配,但只能存储最新的九个。

5、RegExp exec() 

 var text = "mom and dad 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"            匹配的第三个值
 var text = "cat, bat, sat, fat";
        var pattern1 = /.at/;

        var matches = pattern1.exec(text);
        alert(matches.index);    //0
        alert(matches[0]);       //"cat"
        alert(pattern1.lastIndex);//0

        matches = pattern1.exec(text);
        alert(matches.index);    //0
        alert(matches[0]);       //"cat"
        alert(pattern1.lastIndex);//0

        var pattern2 = /.at/g;

        var matches = pattern2.exec(text);
        alert(matches.index);    //0
        alert(matches[0]);       //"cat"
        alert(pattern2.lastIndex);//0

        matches = pattern2.exec(text);
        alert(matches.index);    //5
        alert(matches[0]);       //"bat"
        alert(pattern2.lastIndex);//0

6、RegExp实例属性

  var pattern1 = /\[bc\]at/i;

        alert(pattern1.global);     //false  //是否设置全局查找
        alert(pattern1.ignoreCase); //true   是否忽略大小写
        alert(pattern1.multiline);  //false  是否设置多行查找
        alert(pattern1.lastIndex);  //0      一个整数,标示开始下一次匹配的字符位置。
        alert(pattern1.source);     //"\[bc\]at"  正则表达式的源文本。

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

        alert(pattern2.global);     //false
        alert(pattern2.ignoreCase); //true
        alert(pattern2.multiline);  //false
        alert(pattern2.lastIndex);  //0
        alert(pattern2.source);     //"\[bc\]at"
时间: 2024-12-20 15:43:07

javascript 学习总结(六)RegExp对象的相关文章

JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

JavaScript学习总结(一)--延迟对象.跨域.模板引擎.弹出层.AJAX示例 目录 一.AJAX示例 1.1.优点 1.2.缺点 1.3.jQuery AJAX示例 二.延迟对象(Deferred) 2.1.回调函数 2.2.deferred.done 三.跨域 3.1.什么是跨域 3.2.JSONP跨域 3.3.jQuery使用JSONP跨域 3.4.跨域资源共享(CORS) 3.5.小结 四.弹出层 五.模板引擎 5.1.Hello World 5.2.方法 5.3.与AJAX结合应

JavaScript学习记录day9-标准对象

JavaScript学习记录day9-标准对象 [TOC] 在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // 'number' typeof NaN; // 'number' typeof 'str'; // 'string' typeof true; // 'boolean' typeof undefined; // 'undefined' typ

Javascript学习--------认识window窗口对象

window对象: Window 对象表示浏览器中打开的窗口. 可以通过window对象设置窗口的大小,位置等. 还可以控制是否加载网页等. window对象集合: 集合 描述 frames[] 返回窗口中所有命名的框架. 该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架或 <iframe>.属性 frames.length 存放数组 frames[] 中含有的元素个数.注意,frames[] 数组中引用的框架可能还包括框架,它们自己也具有 frames[] 数

JavaScript学习笔记——3.系统对象

1.常用对象类型 时间(Date)对象 数学(Math)对象 字符串(String)对象 正则表达式(RegExp)对象 数组(Array)对象 2.Date对象: //var date= new Date(); .getYear() //获取年13 .getFullYear() //获取年2013 .getMonth() //获取月(需要+1) .getDate() //获取日 .getHours() //获取时 .getMinutes() //获取分 .getSeconds() //获取秒

JavaScript学习12:事件对象

JavaScript事件的一个重要方面是它们拥有一些相对一致的特点,可以给我们的开发提供更多的强大功能.最方便和强大的就是事件对象了,它们可以帮你处理鼠标和键盘方面的很多事情,此外我们还可以修改一般事件的捕获或者冒泡流的函数. 在上篇博客中我们已经对事件有了一个基本的认识,结尾处我们提到了事件处理函数.事件处理函数的一个标准特性是,以某些方式访问的事件对象包含有关于当前事件的上下文信息.事件处理由三部分组成:对象.事件处理函数=函数. 那么事件对象又是什么呢?它在哪里? 当触发某个事件时,会产生

JavaScript学习07 内置对象

JavaScript内置对象 图像对象 导航对象 窗口对象 屏幕对象 事件对象 历史对象 文件对象(重要) 锚点对象 链接对象 框架对象 表单对象(重要) 位置对象 JS Window 窗口对象:http://www.w3school.com.cn/js/js_window.asp 所有浏览器都支持window对象.它表示浏览器窗口. 所有 JavaScript 全局对象.函数以及变量均自动成为window对象的成员. 窗口对象的属性和方法格式: [window.]属性 [window.]方法(

Javascript 学习 笔记六

1.javascript 面向对象 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-eq

JavaScript学习(六):JavaScript数据类型

JavaScript的数据类型分为两类:原始类型(primitive type)和对象类型(object type). 原始类型(也成简单数据类型/基本数据类型)有5种:Number.String.Boolean.Null.Undefined. JavaScript不支持任何创建自定义类型的机制,而所有值最终都将是原始类型或对象类型. 乍一看,好像只有这6种数据类型不足以表示所有数据.但是,由于JavaScript数据类型具有动态性,因此的确没有再定义其他数据类型的必要了.

Javascript学习总结三(Array对象的用法)

javascript Array对象的常用API 1:concat concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本.举例:var a1 = ['aa','bb'];var a2 = ['cc','dd'];var a3 = a2.concat(a1); 2:every every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供).every() 方法使用指定函数检测数组中的所有元素:如果数组中检测到有一个元素不满足,则整个表

javascript学习笔记 - 面向对象 理解对象

ECMAScript 中有两种属性:数据属性和访问器属性 一 属性类型 1.数据属性.数据属性有4个描述其行为的特性 [[Configurable]]表示能否通过delete删除属性从而重新定义属性: 能否修改属性: 能否把属性修改为访问器属性.  [[Enumerable]] 表示是否能通过for-in循环进行枚举.  [[Writable]] 表示能否修改属性的值  [[value]] 包含这个属性的值.读取和写入属性值,都是从这个位置来操作  对象字面量初始化时定义的属性,这些特性默认都是