zoukankan      html  css  js  c++  java
  • 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"
  • 相关阅读:
    matlab中fft与fftshift命令小结(转)
    matlab 添加多行注释
    matlab colormap,caxis,shading,hsv,pcolor, alpha 表示(转)
    在线latex公式编辑器
    matlab 对话框弹出
    步态识别 概要
    JavaScript函数
    MySQL多表查询总结
    VS2005打不开 卡在登入状态
    about project
  • 原文地址:https://www.cnblogs.com/shizhouyu/p/4922610.html
Copyright © 2011-2022 走看看