当前位置:编程学习 > JAVA >>

好好学一遍JavaScript 笔记(六)

继续正则表达式——量词:

/** 
  * 量词可以指定某个特定模式出现的次数。当指定某个模式应当出现 
  * 的次数时、可以指定硬性数量(例如、某个字符应该出现三次)、也 
  * 可以指定软性数量(例如、这个字符至少应该出现一次、不过可以 
  * 重复任意次)。 
         代码        描述 
         ?     出现零次或一次 
         *     出现零次或多次(任意次) 
         +     出现一次或多次(至少出现一次) 
         {n}   一定出现n次 
         {n,m}    至少出现n次但不超过m次 
         {n,}     至少出现n次 
          
     例如:想匹配bread,read,red这几个单词  
  */  
 var sIf = /b?rea?d/;         
 sIf = /b{0,1}rea{0,1}d/;     //另外一种方法   
   
 /** 
  *  
  * 例如匹配 bd,bad,baad,baaad 
  *  
  *             正则表达式           匹配 
                 ba?d            "bd","bad" 
                 ba*d            "bd","bad","baad","baaad" 
                 ba+d            "bad","baad","baaad" 
                 ba{0,1}d        "bd","bad" 
                 ba{0,}d         "bd","bad","baad","baaad" 
                 ba{1,}d         "bad","baad","baaad" 
  */  
    
 /** 
  * 匹配:bead、baed、beed、baad、bad  
  */  
 //var eaTest = /b[ea]{1,2}d/ ;   
 var sToMatch = "abbbaabbbaaabbb1234";  
 var re1 = /.*bbb/g;   //贪婪  
 var re2 = /.*?bbb/g;   //惰性  
 var re3=/.*+bbb/g;   //支配         
 alert("re1:"+re1.exec(sToMatch)+"    \n--re2:"+re2.exec(sToMatch));  
贪婪的、惰性的和支配性的量词
贪婪量词先看整个字符串是否匹配、如果没有发现匹配、它就去掉
该字符串中的最后一个字符、并再次尝试。如果还是没有发现匹配
、那么再次去掉最后一个字符、这个过程会一直重复直到发现一个
匹配或者字符串不剩任何字符。
惰性量词首先看字符串中的第一个字符是否匹配、如果单独这一个
字符还不够、就读入下一个字符、组成两个字符的字符串。如果还
是没有发现匹配、惰性量词继续从字符串中添加字符知道发现匹配
或者整个字符串都检查过也没有匹配。惰性量词和贪婪量词的工作
方式恰好相反。
支配量词只尝试匹配整个字符串。如果整个字符串不能产生匹配、
不做进一步尝试。支配词其实简单的说、就是一刀切。
怎样表示贪婪、惰性和支配量词呢?正是完全使用星号、加号和问号。
例如、单独一个问号(?)是贪婪的、但是问号后面在跟一个问号(??)就
是惰性的。要使问号成为支配量词、在后面加上一个加号(?+)。

贪婪               惰性            支配                 描述
 ?                    ??                ?+               零次或一次出现
 *                     *?                 *+               零次或多次出现
 +                    +?                ++              一次或多次出现
{n}                 {n}?              {n}+            恰好n次出现
{n,m}            {n,m}?          {n,m}+       至少n次至多m次出现
{n,}                {n,}?             {n,}+           至少n次出现
---------------原文出自《javaScript高级程序设计》-----------------------
复杂模式——分组:

/** 
  * 分组、 
  * 假设想匹配字符串"dogdog"。使用目前获得的知识 
  * 可能估计表达式应该类似: 
  */  
 var res = /dogdog/g;  
 alert(res.test("dogdog"));    
 
 //分组重写:  
 var res = /(dog){2}/g;  
 alert(res.test("dogdog"));      
   
 //分组量词使用  
 var re1 = /(dog)?/;  //出现零次或一次     
 var re2 = /(dog)*/;  //出现零次或多次(任意次)  
 var re3 = /(dog)+/;  //出现一次或多次(至少出现一次)  
   
 //同时也可以将分组放在中间  
 var res = /(mmm( and nnn)?)/;    
trim() 方法:

/** 
  * trim() 方法  
  * "\s" 匹配所有空格 . 
  * "." 小数点可以匹配除了换行符(\n)以外的任意一个字符. 
  * "^" 与字符串开始的地方匹配,不匹配任何字符. 
  * "{1}quot; 与字符串结束的地方匹配,不匹配任

补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,