最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

正則表達(dá)式詳述 三

 更新時(shí)間:2007年04月29日 00:00:00   作者:  
當(dāng)表達(dá)式被檢查的時(shí)候,文字符號提供了編輯正則表達(dá)式的方法。利用文字符號可以使到正則表達(dá)式保持為常數(shù)。例如,如果你在一個(gè)循環(huán)中使用文字符號來構(gòu)造一個(gè)正則表達(dá)式,正則表達(dá)式不需進(jìn)行反復(fù)編譯。正則表達(dá)式對象構(gòu)造器,例如,new RegExp("ab+c"),提供正則表達(dá)式的運(yùn)行時(shí)編譯。當(dāng)你知道正則表達(dá)式的模式會(huì)變化的時(shí)候,應(yīng)該使用構(gòu)造函數(shù),或者你不知道正則表達(dá)式的模式,而它們是從另外的源獲得的時(shí)候,比如由用戶輸入時(shí)。一旦你定義好了正則表達(dá)式,該正則表達(dá)式可在任何地方使用,并且可以改變,你可以使用編譯方法來編譯一個(gè)新的正則表達(dá)式以便重新使用。 
    一個(gè)分離預(yù)先定義的RegExp對象可以在每個(gè)窗口中使用;也就是說,每個(gè)分離的Javascript線程運(yùn)行以獲得自己的RegExp對象。因?yàn)槊總€(gè)腳本在一個(gè)線程中是不可中斷的,這就確保了不同的腳本不會(huì)覆蓋RegExp對象的值。預(yù)定義的RegExp對象包含的靜態(tài)屬性:input, multiline, lastMatch,lastParen, leftContext,rightContext, 以及從$1到$9。input和multiline屬性能被預(yù)設(shè)。其它靜態(tài)屬性的值是在執(zhí)行個(gè)別正則 
表達(dá)式對象的exec和test方法后,且在執(zhí)行字符串的match和replace方法后設(shè)置的。 
屬性 
注意RegExp對象的幾個(gè)屬性既有長名字又有短名字(象Perl)。這些名字都是指向相同的值。Perl是一種編程語言,而Javascript模仿了它的正則表達(dá)式。 

屬性$1, ..., $9 
取得匹配的子串,如果有的話 

屬性$_ 
參考input 

屬性$* 
參考multiline 

屬性$& 
參考lastMatch 

屬性$+ 
參考lastParen 

屬性$` 
參考leftContext 

屬性$' 
參考rightContext 

屬性constructor 
指定用來建立對象原型函 

屬性global 
決定是否測試正則表達(dá)式是否不能匹配所有的字符串,或者只是與最先的沖突。 

屬性ignoreCase 
決定試圖匹配字符串的時(shí)候是否忽略大小寫 

屬性input 
當(dāng)正則表達(dá)式被匹配的時(shí)候,為相反的字符串。 

屬性lastIndex 
決定下一次匹配從那里開始 

屬性lastMatch 
最后一個(gè)匹配的字符 

屬性lastParen 
子串匹配的時(shí)候,最后一個(gè)parenthesized,如果有的話。 

屬性leftContext 
最近一次匹配前的子串。 

屬性multiline 
是否在串的多行中搜索。 

屬性prototype 
允許附加屬性到所有的對象 

屬性rightContext 
最近一次匹配后的的子串。 

屬性source 
模式文本 

方法 
compile方法 
編譯一個(gè)正則表達(dá)式對象 

exec方法 
運(yùn)行正則表達(dá)式匹配 

test方法 
測試正則達(dá)式匹配 

toSource方法 
返回一個(gè)對象的文字描述指定的對象;你可以使用這個(gè)值來建立一個(gè)新的對象。不考慮Object.toSource方法。 

toString方法 
返回一個(gè)字符串描述指定的對象,不考慮Object.toString對象。 

valueOf方法 
返回指定對角的原始值。不考慮Object.valueOf方法。


另外,這個(gè)對象繼承了對象的watch和unwatch方法 
  例子: 
  例1、下述示例腳本使用replace方法來轉(zhuǎn)換串中的單詞。在替換的文本中,腳本使用全局 RegExp對象的$1和$2屬性的值。注意,在作為第二個(gè)參數(shù)傳遞給replace方法的時(shí)候,RegExp對象的$屬性的名 
稱。 
<script LANGUAGE="Javascript1.2"> 
re = /(\w+)\s(\w+)/; 
str = "John Smith"; 
newstr=str.replace(re,"$2, $1"); 
document.write(newstr) 
</script> 
顯示結(jié)果:"Smith, John".  

  例2、下述示例腳本中,RegExp.input由Change事件處理句柄設(shè)置。在getInfo函數(shù)中,exec 方法使用RegExp.input的值作為它的參數(shù),注意RegExp預(yù)置了$屬性。 


<script LANGUAGE="Javascript1.2"> 
function getInfo(abc) 

re = /(\w+)\s(\d+)/; 
re.exec(abc.value); 
window.alert(RegExp.$1 + ", your age is " + RegExp.$2); 

</script> 

  請輸入你的姓和年齡,輸入完后按回車鍵。 
  <FORM><INPUT TYPE="TEXT" NAME="NameAge" onChange="getInfo(this);"></FORM> 
  </HTML> 


$1, ..., $9屬性 
用圓括號括著的匹配子串,如果有的話。 
是RegExp的屬性 
靜態(tài),只讀 

在Javascript 1.2, NES 3.0以上版本提供 
描述:因?yàn)閕nput是靜態(tài)屬性,不是個(gè)別正則表達(dá)式對象的屬性。你可以使用RegExp.input 訪問該屬性。 

能加上圓括號的子串的數(shù)量不受限制,但正則表達(dá)式對象只能保留最后9 條。如果你要訪問所有的圓括號內(nèi)的匹配字串,你可以使用返回的數(shù)組。 

這些屬性能用在RegExp.replace方法替換后的字符串(輸出結(jié)果)。當(dāng)使用這種方式的時(shí)候,不用預(yù)先考慮RegExp對象。下面給出例子。當(dāng)正則表達(dá)式中沒有包含圓括號的時(shí)候,該腳本解釋成$n的字面意 
義。(這里的n是一個(gè)正整數(shù))。 


例如: 
下例腳本使用replace 方法來交換串中單詞的位置。在替換后的文本字串中,腳本使用正則表達(dá)式RegExp對象的$1和$2屬性的值。注意:當(dāng)它們向replace方法傳遞參數(shù)的時(shí)候,這里沒有考慮 $ 屬性的 
RegExp對象的名稱。 
<script LANGUAGE="Javascript1.2"> 
re = /(\w+)\s(\w+)/; 
str = "John Smith"; 
newstr=str.replace(re,"$2, $1"); 
document.write(newstr) 
</script> 
顯示的輸出結(jié)果為:Smith, John。
u/meil/archives/2007/324.html

相關(guān)文章

最新評論

沛县| 农安县| 涟水县| 渝中区| 平顶山市| 木兰县| 南昌县| 忻州市| 建德市| 贵溪市| 华坪县| 温州市| 临武县| 武强县| 六盘水市| 思南县| 龙山县| 武川县| 海盐县| 纳雍县| 皋兰县| 靖安县| 綦江县| 邢台县| 济宁市| 旬阳县| 康定县| 黄平县| 望城县| 西峡县| 房山区| 兰考县| 万荣县| 清镇市| 凤城市| 元氏县| 南雄市| 诸城市| 肇庆市| 邯郸县| 吉木乃县|