隨筆-124  評論-49  文章-56  trackbacks-0

          1111-1234 re \d{5}(-\d{4})?
          ?指前面的子項可有可無
          11111 re (\d)\1{4}
          1221 re (\d)(\d)\2\1

          RegExp對象
          創(chuàng)建方式:
          1 使用RegExp對象顯式構造函數new RegExp("pattern"[,"flags"])
          2 使用RegExp對象隱式構造函數/pattern/[flags]
          flags參數
          g 用作全局標志
          i 用作無視大小寫
          m 用作多行標志
          如果沒有設置這個標志,那么“^”只與整個字符串的開始位置相配,“$”只與整個字符串的
          結束位置相配,如果設置了這個標志,那么“^”還可以與字符串的“\n”和"\r"之后的位置相配
          (即下一行的行首),面“$”還可以與字符串的“\n”和"\r"之前的位置相配(即一行的行首)

          注意:javascript中的\是轉義字符,所以應將原始正則表達式模式文本中的\都用
          兩個\\替換,如果要表示原意為"\"就要用"\\\\"表示
          例:
          var re=new RegExp("\\d{5}");顯式
          vaf re=/\d{5}/;隱式

          RegExp對象的屬性
          共享的靜態(tài)屬性
          index只讀屬性 當前使用的正則表達式的模式在被查找字符串中的第一個相配的字符串的開始位置,從0開始,默認為-1
          lastindex只讀屬性 當前使用的正則表達式的模式在被查找字符串中的第一個相配的字符串的結束位置的下一個位置,從0開始,默認為-1
          input屬性  當前使用的正則表達式的模式所作用的字符串
          lastMatch屬性   當前使用的正則表達式的模式在被查找字符串中的最后一個字符串
          lastParen屬性
          leftContext屬性  當前使用的正則表達式的模式在被查找字符串中的最后一個字符串左邊的位置
          rightContext屬性  當前使用的正則表達式的模式在被查找字符串中的最后一個字符串右邊的位置

          單個對名象實例的屬性
          global屬性 返回創(chuàng)建對象實例時全局標志的狀態(tài),如果設了為treu,反為false
          ignreCase屬性  返回創(chuàng)建對象實例時指定的無視大小寫狀態(tài),如果設了為treu,反為false
          multiline屬性  返回創(chuàng)建對象實例時指定的多行標志狀態(tài),如果設了為treu,反為false
          source屬性  返回創(chuàng)建對象實例時所指定的正則表達式文本
          compile("pattern[,"flags"]")方法 更換創(chuàng)建RegExp對實例時所指定的正則表達式的模式
          exec(str)方法 使用創(chuàng)建RegExp對實例時所指定的正則表達式的模式對一個字符串執(zhí)行查找,并返回一個包含結果的數組,沒有返回null
          返回的數組有input,index和lastIndex三個屬性
          test(string)方法   檢查一個字符串是否存在創(chuàng)建RegExp對實例時所指定的正則表達式的模式
          說明:如果正則表達式設置了全局標志(g),可以多次調用exec和test方法,每次查找從lastIndex屬性值指定的位置開始查找

          例子:

          <script type="text/javascript">
              
          //例子:
                  var strSrc="xxa1b01c001yya2b02c002zz";
                  
          var re=/a(\d)b(\d{2})c(\d{3})/gi;
                  
          var arr,count=0;
                  
          while((arr=re.exec(strSrc))!=null)
                  
          {
                      displayResult();
                  }


                  
          function displayResult()
                  
          {
                      document.write(
          "<p>這是用正表達式/"+re.source+"/gi對字符串<br></p>"+
                              RegExp.input
          +"進行第"+(++count)+"次查找的結果:<br>");
                      document.write(
          "RegExp.index為"+RegExp.index+"<br>");
                      document.write(
          "RegExp.lastIndex為"+RegExp.lastIndex+"<br>");
                      document.write(
          "RegExp.lastMatch為"+RegExp.lastMatch+"<br>");
                      document.write(
          "RegExp.lastParen為"+RegExp.lastParen+"<br>");
                      document.write(
          "RegExp.leftContext為"+RegExp.leftContext+"<br>");
                      document.write(
          "RegExp.rightContext為"+RegExp.rightContext+"<br>");
                      document.write(
          "RegExp.$1為"+RegExp.$1+"<br>");
                      document.write(
          "RegExp.$2為"+RegExp.$2+"<br>");
                      document.write(
          "RegExp.$3為"+RegExp.$3+"<br>");
                      document.write(
          "RegExp.$4為"+RegExp.$4+"<br>");
                      document.write(
          "arr.inedex為"+arr.index+"<br>");
                      document.write(
          "arr.input為"+arr.input+"<br>");
                      document.write(
          "arr.lastIndex為"+arr.lastIndex+"<br>");
                      document.write(
          "返回數組元素的個數為"+arr.length+"<br>");
                      document.write(
          "返回數組元素的內容為[");
                      
          for(var i=0;i<arr.length;i++)
                      
          {
                          
          if(i<arr.length-1)
                          
          {
                              document.write(
          "\""+arr[i]+"\",");
                          }
          else
                          
          {
                              document.write(
          "\""+arr[i]+"\"]</p>");
                          }

                      }

                  }

                  
                 
          /////////--------------- String 對象----------------------------
                       //match(rgExp)方法  使用正則表達式模式對字符串進行查找,并返回一個包含結果的數組
                      
                       
          var strSrc="xxa1b01c001yya2b02c002zz";
                  
          var re=/a(\d)b(\d{2})c(\d{3})/gi;
                  
          var arr;
                  arr
          =strSrc.match(re);
                  
          for(var i=0;i<arr.length;i++)
                  
          {
                      
          if(i<arr.length-1)
                          document.write(
          "[\""+arr[i]+"\",")
                      
          else
                          document.write(
          "\""+arr[i]+"\"]")                
                  }

                       
                       
                       
          //search(rgExp)方法 第一個字符串
                       
                       
          //replace(rgExp,replaceText)方法
                       
                        
          var strSrc="a12b34c56";
                  
          var re=/(\d)(\d)/gi;
                  
          var strDest=strSrc.replace(re,"$2$1");
                  alert(strSrc
          +"="+strDest);
                      
                       
                       
          //split(separator[,limit])方法
                       
                       
          //正則表達式的語法
                       //限定符:
                       //{n}
                       //{n,}前面的指定字符只少出現n次
                       //{n,m}前面的指定字符只少出現n次,最多出現m次
                       //+一次或多次,等效于{1,}
                       //*零次或多次,等效于{0,}
                       //?零次或一次
                       
                       
          //貪婪匹配
                       //默認情況下,正則表達式使用最長匹配原則
                       //非貪婪匹配
                       //當字符"?"緊跟任何其他限定符(*、+、?、{n}、{n,m}、{n,})之后,匹配變成最短匹配原則 "fo+?"
                       //選擇匹配符"|"
                       //兩邊字符最大原則
                       
                       
          //分組組合和反同引用符"()"和"\num"
                       //(?:pattern)
                       //un \u00A9匹配@
                       //\f換頁 等效于\x0c和\cL
                       //\n換行 等效于
                       //\r回車 等效于
                       //\t制表 等效于
                       //\v垂直制表符 等效于
                       
                       
          //字符匹配符
                       //[]任何一個
                       //[^]取反任何一個
                       //[a-z]取范圍內的一個
                       //[^a-z]不在范圍內的字符
                       //\d \D是\d的取反
                       //\s空格 等效于[\f\n\r\t\v] \S非空格
                       //\w單詞 等效于[A-Za-z0-9_] \W
                       //. 換行符以外的任意字符
                       
                       
          //定位符
                       //^開始位置
                       //$結尾位置
                       //\b 單詞的邊界(開始或結尾邊界)
                       //\B 非單詞的邊界
                       
                       
          //原議字符
                       //即需要\:
                       //正則表達式從左到右進行計算,并按優(yōu)先級順序。
                       /*
                       空行  re /^\s*$/
                       HTML標記 re  /<(\S+)(\s[^>]*?)>[\s\S]*<\/\1\s*>/
                       Email   re  /[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
                       兩個相同的相鄰單詞 re /\b([a-z]+)\1\b/
                       ip地址 /^\d{1,2}|1\d\d|2[0-4]\d|25[0-5(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/
                       
          */

                       
                       
          //例子
                       /*
                       
                       
          */

              
          </script>
          posted on 2009-11-04 14:42 junly 閱讀(234) 評論(0)  編輯  收藏 所屬分類: ajax/jquery/js
          主站蜘蛛池模板: 安远县| 浏阳市| 鸡泽县| 乌兰浩特市| 淅川县| 桂阳县| 宁夏| 龙陵县| 龙川县| 柏乡县| 霍林郭勒市| 平顶山市| 北川| 河津市| 汝南县| 信宜市| 会东县| 乐至县| 新乐市| 正安县| 团风县| 上饶县| 建宁县| 阜平县| 呈贡县| 大埔县| 塘沽区| 三江| 临泽县| 丘北县| 九龙城区| 禄丰县| 高邑县| 涡阳县| 清远市| 镇雄县| 白银市| 碌曲县| 江华| 琼中| 天柱县|